summaryrefslogtreecommitdiff
path: root/src/stages/intermediate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/stages/intermediate.rs')
-rw-r--r--src/stages/intermediate.rs52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/stages/intermediate.rs b/src/stages/intermediate.rs
index c5be44f..b890cd4 100644
--- a/src/stages/intermediate.rs
+++ b/src/stages/intermediate.rs
@@ -169,32 +169,6 @@ impl IntermediateParser {
}
}
- fn parse_macro_definition_body(&mut self, body: &MacroDefinitionBody, source: &SourceSpan) -> Option<Tracked<IntermediateValue>> {
- match &body {
- MacroDefinitionBody::Integer(integer) => {
- let token = self.parse_integer_token(&integer, &source)?;
- let integer = IntermediateValue::Integer(token.value);
- Some(Tracked::from(integer, source.clone()))
- }
- MacroDefinitionBody::Invocation(invocation) => {
- self.parse_invocation(&invocation, &invocation.source)
- }
- MacroDefinitionBody::Block(blocks) => {
- let mut tokens = Vec::new();
- for block in blocks {
- tokens.append(&mut self.parse_block_token(block, &block.source));
- }
- let value = IntermediateValue::Block(tokens);
- Some(Tracked::from(value, source.clone()))
- }
- MacroDefinitionBody::List(list) => {
- let list = self.parse_list_token(list, &source)?;
- let integer = IntermediateValue::List(list.value);
- Some(Tracked::from(integer, source.clone()))
- }
- }
- }
-
fn parse_block_token(&mut self, block: &BlockToken, source: &SourceSpan) -> Vec<Tracked<IntermediateToken>> {
let mut intermediate = Vec::new();
match block {
@@ -515,6 +489,32 @@ impl IntermediateParser {
}
}
+ fn parse_macro_definition_body(&mut self, body: &MacroDefinitionBody, source: &SourceSpan) -> Option<Tracked<IntermediateValue>> {
+ match &body {
+ MacroDefinitionBody::Integer(integer) => {
+ let token = self.parse_integer_token(&integer, &source)?;
+ let integer = IntermediateValue::Integer(token.value);
+ Some(Tracked::from(integer, source.clone()))
+ }
+ MacroDefinitionBody::Invocation(invocation) => {
+ self.parse_invocation(&invocation, &invocation.source)
+ }
+ MacroDefinitionBody::Block(blocks) => {
+ let mut tokens = Vec::new();
+ for block in blocks {
+ tokens.append(&mut self.parse_block_token(block, &block.source));
+ }
+ let value = IntermediateValue::Block(tokens);
+ Some(Tracked::from(value, source.clone()))
+ }
+ MacroDefinitionBody::List(list) => {
+ let list = self.parse_list_token(list, &source)?;
+ let integer = IntermediateValue::List(list.value);
+ Some(Tracked::from(integer, source.clone()))
+ }
+ }
+ }
+
fn parse_expression(&mut self, expression: &Expression, source: &SourceSpan) -> Option<Tracked<IntermediateInteger>> {
let mut stack = ExpressionStack::new();
for token in &expression.tokens {