summaryrefslogtreecommitdiff
path: root/src/stages/compiler.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/stages/compiler.rs')
-rw-r--r--src/stages/compiler.rs22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/stages/compiler.rs b/src/stages/compiler.rs
index d421e83..7dfebd0 100644
--- a/src/stages/compiler.rs
+++ b/src/stages/compiler.rs
@@ -94,8 +94,8 @@ impl SymbolParser {
MacroDefinitionBody::Integer(integer) => {
self.parse_integer_token(&integer, &integer.source)
}
- MacroDefinitionBody::String(string) => {
- self.parse_string_token(&string, &string.source)
+ MacroDefinitionBody::List(list) => {
+ self.parse_list_token(&list, &list.source)
}
MacroDefinitionBody::Invocation(invocation) => {
self.parse_invocation(&invocation, &invocation.source)
@@ -123,6 +123,9 @@ impl SymbolParser {
ExpressionToken::IntegerToken(integer) => {
self.parse_integer_token(integer, source);
}
+ ExpressionToken::ListToken(list) => {
+ self.parse_list_token(list, source);
+ }
ExpressionToken::Invocation(invocation) => {
self.parse_invocation(invocation, source);
}
@@ -148,8 +151,8 @@ impl SymbolParser {
InvocationArgument::BlockToken(block) => {
self.parse_block_token(block, &source);
}
- InvocationArgument::StringToken(string) => {
- self.parse_string_token(string, &source);
+ InvocationArgument::ListToken(list) => {
+ self.parse_list_token(list, &source);
},
InvocationArgument::Invocation(invocation) => {
self.parse_invocation(invocation, &source);
@@ -208,12 +211,17 @@ impl SymbolParser {
}
}
- fn parse_string_token(&mut self, token: &StringToken, source: &SourceSpan) {
+ fn parse_list_token(&mut self, token: &ListToken, source: &SourceSpan) {
match &token {
- StringToken::Invocation(invocation) => {
+ ListToken::Invocation(invocation) => {
self.parse_invocation(&invocation, source)
}
- StringToken::StringLiteral(_) => (),
+ ListToken::ListLiteral(integers) => {
+ for integer in integers {
+ self.parse_integer_token(&integer, source)
+ }
+ }
+ ListToken::StringLiteral(_) => (),
}
}
}