diff options
Diffstat (limited to 'src/gather_libraries.rs')
-rw-r--r-- | src/gather_libraries.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/gather_libraries.rs b/src/gather_libraries.rs index 0b5d2a6..0fd1131 100644 --- a/src/gather_libraries.rs +++ b/src/gather_libraries.rs @@ -117,15 +117,19 @@ fn parse_symbols_from_source(source_code: String, path: Option<&Path>) -> Symbol let mut references = Vec::new(); for token in token_iter { + let source = token.source; match token.variant { SynVar::LabelDefinition(name) => { - definitions.push(Symbol { name, source: token.source }); + let variant = SymbolVariant::LabelDefinition; + definitions.push(Symbol { name, source, variant }); }, SynVar::MacroDefinition(name) => { - definitions.push(Symbol { name, source: token.source }); + let variant = SymbolVariant::MacroDefinition; + definitions.push(Symbol { name, source, variant }); } SynVar::Symbol(name) => { - references.push(Symbol { name, source: token.source }); + let variant = SymbolVariant::Reference; + references.push(Symbol { name, source, variant }); }, _ => (), } @@ -181,5 +185,14 @@ pub struct Symbols { pub struct Symbol { pub name: String, + pub variant: SymbolVariant, pub source: SourceSpan, } + + +#[derive(PartialEq)] +pub enum SymbolVariant { + LabelDefinition, + MacroDefinition, + Reference, +} |