From c5e626d27910e82df125d6d0c09037811488eeea Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Tue, 30 Dec 2025 09:09:40 +1300 Subject: Move parse_macro_definition_body function closer to calling site This simplifies the next commit. --- src/stages/intermediate.rs | 52 +++++++++++++++++++++++----------------------- 1 file 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> { - 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> { 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> { + 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> { let mut stack = ExpressionStack::new(); for token in &expression.tokens { -- cgit v1.2.3-70-g09d2