summaryrefslogtreecommitdiff
path: root/src/gather_libraries.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/gather_libraries.rs')
-rw-r--r--src/gather_libraries.rs19
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,
+}