refactor: use metadata_for_symbol helper in node_types generation
This commit is contained in:
parent
cb8d926725
commit
c19cce111f
1 changed files with 7 additions and 12 deletions
|
|
@ -5,6 +5,7 @@ use thiserror::Error;
|
|||
|
||||
use super::{
|
||||
grammars::{LexicalGrammar, SyntaxGrammar, VariableType},
|
||||
introspect_grammar::metadata_for_symbol,
|
||||
rules::{Alias, AliasMap, Symbol, SymbolType},
|
||||
};
|
||||
|
||||
|
|
@ -487,19 +488,13 @@ pub fn generate_node_types_json(
|
|||
(alias.value.clone(), alias.is_named)
|
||||
} else {
|
||||
match symbol.kind {
|
||||
SymbolType::NonTerminal => {
|
||||
let variable = &syntax_grammar.variables[symbol.index];
|
||||
(variable.name.clone(), variable.kind == VariableType::Named)
|
||||
// TODO: check if `SymbolType::EndOfNonTerminalExtra` is correct
|
||||
SymbolType::End => continue,
|
||||
_ => {
|
||||
let (name, kind) =
|
||||
metadata_for_symbol(*symbol, syntax_grammar, lexical_grammar);
|
||||
(name.to_string(), kind == VariableType::Named)
|
||||
}
|
||||
SymbolType::Terminal => {
|
||||
let variable = &lexical_grammar.variables[symbol.index];
|
||||
(variable.name.clone(), variable.kind == VariableType::Named)
|
||||
}
|
||||
SymbolType::External => {
|
||||
let token = &syntax_grammar.external_tokens[symbol.index];
|
||||
(token.name.clone(), token.kind == VariableType::Named)
|
||||
}
|
||||
SymbolType::End | SymbolType::EndOfNonTerminalExtra => continue,
|
||||
}
|
||||
};
|
||||
kind_to_symbol_ids
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue