diff --git a/src/protocol/parser/pass_definitions.rs b/src/protocol/parser/pass_definitions.rs index 5955dfdff242e285bdfef5ac867b75c9b5fcab40..b7f2f70ae093791e51e0fb9a5ec6555e0bf36ce4 100644 --- a/src/protocol/parser/pass_definitions.rs +++ b/src/protocol/parser/pass_definitions.rs @@ -3,13 +3,17 @@ use super::symbol_table::*; use super::{Module, ModuleCompilationPhase, PassCtx}; use super::tokens::*; use super::token_parsing::*; -use crate::protocol::input_source::{InputSource as InputSource, InputPosition as InputPosition, InputSpan, ParseError}; +use super::pass_definitions_types::*; + +use crate::protocol::input_source::{InputSource, InputPosition, InputSpan, ParseError}; use crate::collections::*; /// Parses all the tokenized definitions into actual AST nodes. pub(crate) struct PassDefinitions { // State associated with the definition currently being processed cur_definition: DefinitionId, + // Itty bitty parsing machines + type_parser: ParserTypeParser, // Temporary buffers of various kinds buffer: String, struct_fields: ScopedBuffer, @@ -25,6 +29,7 @@ impl PassDefinitions { pub(crate) fn new() -> Self { Self{ cur_definition: DefinitionId::new_invalid(), + type_parser: ParserTypeParser::new(), buffer: String::with_capacity(128), struct_fields: ScopedBuffer::new_reserved(128), enum_variants: ScopedBuffer::new_reserved(128),