diff --git a/crates/analyzer/src/analyzer.rs b/crates/analyzer/src/analyzer.rs index 8e02bc10..6f00b8ca 100644 --- a/crates/analyzer/src/analyzer.rs +++ b/crates/analyzer/src/analyzer.rs @@ -292,7 +292,7 @@ fn is_assignable(direction: &Direction) -> bool { fn must_be_assigned(kind: &SymbolKind) -> bool { match kind { SymbolKind::Port(x) => x.direction == Direction::Output, - SymbolKind::ModportMember(x) => x.direction == Direction::Output, + SymbolKind::ModportVariableMember(x) => x.direction == Direction::Output, SymbolKind::Variable(_) => true, SymbolKind::StructMember(_) => true, _ => false, @@ -378,7 +378,7 @@ fn traverse_type_symbol(id: SymbolId, path: &AssignPath) -> Vec { } return ret; } - SymbolKind::ModportMember(x) if is_assignable(&x.direction) => { + SymbolKind::ModportVariableMember(x) if is_assignable(&x.direction) => { if let Ok(symbol) = symbol_table::resolve(&symbol.token) { return traverse_type_symbol(symbol.found.id, path); } diff --git a/crates/analyzer/src/analyzer_error.rs b/crates/analyzer/src/analyzer_error.rs index dc908be1..a7e56de7 100644 --- a/crates/analyzer/src/analyzer_error.rs +++ b/crates/analyzer/src/analyzer_error.rs @@ -227,6 +227,36 @@ pub enum AnalyzerError { error_location: SourceSpan, }, + #[diagnostic( + severity(Error), + code(invalid_modport_variable_item), + help(""), + url("") + )] + #[error("#{identifier} is not a variable")] + InvalidModportVariableItem { + identifier: String, + #[source_code] + input: NamedSource, + #[label("Error location")] + error_location: SourceSpan, + }, + + #[diagnostic( + severity(Error), + code(invalid_modport_function_item), + help(""), + url("") + )] + #[error("#{identifier} is not a function")] + InvalidModportFunctionItem { + identifier: String, + #[source_code] + input: NamedSource, + #[label("Error location")] + error_location: SourceSpan, + }, + #[diagnostic( severity(Error), code(missing_default_argument), @@ -855,6 +885,30 @@ impl AnalyzerError { } } + pub fn invalid_modport_variable_item( + identifier: &str, + source: &str, + token: &TokenRange, + ) -> Self { + AnalyzerError::InvalidModportVariableItem { + identifier: identifier.into(), + input: AnalyzerError::named_source(source, token), + error_location: token.into(), + } + } + + pub fn invalid_modport_function_item( + identifier: &str, + source: &str, + token: &TokenRange, + ) -> Self { + AnalyzerError::InvalidModportFunctionItem { + identifier: identifier.into(), + input: AnalyzerError::named_source(source, token), + error_location: token.into(), + } + } + pub fn missing_default_argument(identifier: &str, source: &str, token: &TokenRange) -> Self { AnalyzerError::MissingDefaultArgument { identifier: identifier.into(), diff --git a/crates/analyzer/src/handlers.rs b/crates/analyzer/src/handlers.rs index c39bacf8..235d88f7 100644 --- a/crates/analyzer/src/handlers.rs +++ b/crates/analyzer/src/handlers.rs @@ -7,6 +7,7 @@ pub mod check_enum; pub mod check_function; pub mod check_identifier; pub mod check_instance; +pub mod check_modport; pub mod check_msb_lsb; pub mod check_number; pub mod check_statement; @@ -21,6 +22,7 @@ use check_enum::*; use check_function::*; use check_identifier::*; use check_instance::*; +use check_modport::*; use check_msb_lsb::*; use check_number::*; use check_statement::*; @@ -83,6 +85,7 @@ impl<'a> Pass1Handlers<'a> { pub struct Pass2Handlers<'a> { check_enum: CheckEnum<'a>, + check_modport: CheckModport<'a>, check_function: CheckFunction<'a>, check_instance: CheckInstance<'a>, check_msb_lsb: CheckMsbLsb<'a>, @@ -96,6 +99,7 @@ impl<'a> Pass2Handlers<'a> { pub fn new(text: &'a str, _build_opt: &'a Build, _lint_opt: &'a Lint) -> Self { Self { check_enum: CheckEnum::new(text), + check_modport: CheckModport::new(text), check_function: CheckFunction::new(text), check_instance: CheckInstance::new(text), check_msb_lsb: CheckMsbLsb::new(text), @@ -109,6 +113,7 @@ impl<'a> Pass2Handlers<'a> { pub fn get_handlers(&mut self) -> Vec<&mut dyn Handler> { vec![ &mut self.check_enum as &mut dyn Handler, + &mut self.check_modport as &mut dyn Handler, &mut self.check_function as &mut dyn Handler, &mut self.check_instance as &mut dyn Handler, &mut self.check_msb_lsb as &mut dyn Handler, @@ -122,6 +127,7 @@ impl<'a> Pass2Handlers<'a> { pub fn get_errors(&mut self) -> Vec { let mut ret = Vec::new(); ret.append(&mut self.check_enum.errors); + ret.append(&mut self.check_modport.errors); ret.append(&mut self.check_function.errors); ret.append(&mut self.check_instance.errors); ret.append(&mut self.check_msb_lsb.errors); diff --git a/crates/analyzer/src/handlers/check_assignment.rs b/crates/analyzer/src/handlers/check_assignment.rs index 3b58edd6..b942a646 100644 --- a/crates/analyzer/src/handlers/check_assignment.rs +++ b/crates/analyzer/src/handlers/check_assignment.rs @@ -53,9 +53,9 @@ fn can_assign(full_path: &[SymbolId]) -> bool { SymbolKind::Port(x) if x.direction == Direction::Output => true, SymbolKind::Port(x) if x.direction == Direction::Ref => true, SymbolKind::Port(x) if x.direction == Direction::Inout => true, - SymbolKind::ModportMember(x) if x.direction == Direction::Output => true, - SymbolKind::ModportMember(x) if x.direction == Direction::Ref => true, - SymbolKind::ModportMember(x) if x.direction == Direction::Inout => true, + SymbolKind::ModportVariableMember(x) if x.direction == Direction::Output => true, + SymbolKind::ModportVariableMember(x) if x.direction == Direction::Ref => true, + SymbolKind::ModportVariableMember(x) if x.direction == Direction::Inout => true, _ => false, }; if can_assign { diff --git a/crates/analyzer/src/handlers/check_direction.rs b/crates/analyzer/src/handlers/check_direction.rs index 4cdcc030..a1bafae6 100644 --- a/crates/analyzer/src/handlers/check_direction.rs +++ b/crates/analyzer/src/handlers/check_direction.rs @@ -10,6 +10,7 @@ pub struct CheckDirection<'a> { point: HandlerPoint, in_function: bool, in_module: bool, + in_modport: bool, } impl<'a> CheckDirection<'a> { @@ -66,7 +67,7 @@ impl<'a> VerylGrammarTrait for CheckDirection<'a> { } } Direction::Modport(x) => { - if !self.in_module { + if !self.in_module || self.in_function { self.errors.push(AnalyzerError::invalid_direction( "modport", self.text, @@ -74,6 +75,15 @@ impl<'a> VerylGrammarTrait for CheckDirection<'a> { )); } } + Direction::Import(x) => { + if !self.in_modport { + self.errors.push(AnalyzerError::invalid_direction( + "import", + self.text, + &x.import.import_token.token.into(), + )); + } + } _ => (), } } @@ -95,4 +105,12 @@ impl<'a> VerylGrammarTrait for CheckDirection<'a> { } Ok(()) } + + fn modport_declaration(&mut self, _arg: &ModportDeclaration) -> Result<(), ParolError> { + match self.point { + HandlerPoint::Before => self.in_modport = true, + HandlerPoint::After => self.in_modport = false, + } + Ok(()) + } } diff --git a/crates/analyzer/src/handlers/check_function.rs b/crates/analyzer/src/handlers/check_function.rs index 2057d2d7..9b7fd889 100644 --- a/crates/analyzer/src/handlers/check_function.rs +++ b/crates/analyzer/src/handlers/check_function.rs @@ -44,7 +44,14 @@ impl<'a> VerylGrammarTrait for CheckFunction<'a> { } if let Ok(symbol) = symbol_table::resolve(arg.expression_identifier.as_ref()) { - if let SymbolKind::Function(x) = symbol.found.kind { + let function_symbol = match symbol.found.kind { + SymbolKind::Function(_) => symbol.found, + SymbolKind::ModportFunctionMember(x) => { + symbol_table::get(x.function).unwrap() + } + _ => return Ok(()), + }; + if let SymbolKind::Function(x) = function_symbol.kind { if x.ret.is_some() { let name = format!( "{}", @@ -86,10 +93,18 @@ impl<'a> VerylGrammarTrait for CheckFunction<'a> { } if let Ok(symbol) = symbol_table::resolve(x.expression_identifier.as_ref()) { - let arity = if let SymbolKind::Function(x) = symbol.found.kind { - Some(x.ports.len()) - } else { - None + let arity = match symbol.found.kind { + SymbolKind::Function(x) => Some(x.ports.len()), + SymbolKind::ModportFunctionMember(x) => { + if let SymbolKind::Function(x) = + symbol_table::get(x.function).unwrap().kind + { + Some(x.ports.len()) + } else { + unreachable!(); + } + } + _ => None, }; let mut args = 0; diff --git a/crates/analyzer/src/handlers/check_modport.rs b/crates/analyzer/src/handlers/check_modport.rs new file mode 100644 index 00000000..3ad23082 --- /dev/null +++ b/crates/analyzer/src/handlers/check_modport.rs @@ -0,0 +1,61 @@ +use crate::analyzer_error::AnalyzerError; +use crate::symbol::SymbolKind; +use crate::symbol_table; +use veryl_parser::veryl_grammar_trait::*; +use veryl_parser::veryl_walker::{Handler, HandlerPoint}; +use veryl_parser::ParolError; + +pub struct CheckModport<'a> { + pub errors: Vec, + text: &'a str, + point: HandlerPoint, +} + +impl<'a> CheckModport<'a> { + pub fn new(text: &'a str) -> Self { + Self { + errors: Vec::new(), + text, + point: HandlerPoint::Before, + } + } +} + +impl<'a> Handler for CheckModport<'a> { + fn set_point(&mut self, p: HandlerPoint) { + self.point = p; + } +} + +impl<'a> VerylGrammarTrait for CheckModport<'a> { + fn modport_item(&mut self, arg: &ModportItem) -> Result<(), ParolError> { + if let HandlerPoint::Before = self.point { + if let Ok(symbol) = symbol_table::resolve(arg.identifier.as_ref()) { + match &*arg.direction { + Direction::Ref(_) | Direction::Modport(_) => {} + Direction::Import(_) => { + if !matches!(symbol.found.kind, SymbolKind::Function(_)) { + self.errors + .push(AnalyzerError::invalid_modport_function_item( + &arg.identifier.identifier_token.token.to_string(), + self.text, + &arg.identifier.as_ref().into(), + )); + } + } + _ => { + if !matches!(symbol.found.kind, SymbolKind::Variable(_)) { + self.errors + .push(AnalyzerError::invalid_modport_variable_item( + &arg.identifier.identifier_token.token.to_string(), + self.text, + &arg.identifier.as_ref().into(), + )); + } + } + } + } + } + Ok(()) + } +} diff --git a/crates/analyzer/src/handlers/create_symbol_table.rs b/crates/analyzer/src/handlers/create_symbol_table.rs index 89683be6..42f7d1d3 100644 --- a/crates/analyzer/src/handlers/create_symbol_table.rs +++ b/crates/analyzer/src/handlers/create_symbol_table.rs @@ -8,11 +8,11 @@ use crate::symbol::Direction as SymDirection; use crate::symbol::Type as SymType; use crate::symbol::{ ConnectTarget, DocComment, EnumMemberProperty, EnumProperty, FunctionProperty, - GenericParameterProperty, InstanceProperty, InterfaceProperty, ModportMemberProperty, - ModportProperty, ModuleProperty, PackageProperty, ParameterProperty, ParameterScope, - ParameterValue, PortProperty, StructMemberProperty, StructProperty, Symbol, SymbolId, - SymbolKind, TypeDefProperty, TypeKind, UnionMemberProperty, UnionProperty, VariableAffiniation, - VariableProperty, + GenericParameterProperty, InstanceProperty, InterfaceProperty, ModportFunctionMemberProperty, + ModportProperty, ModportVariableMemberProperty, ModuleProperty, PackageProperty, + ParameterProperty, ParameterScope, ParameterValue, PortProperty, StructMemberProperty, + StructProperty, Symbol, SymbolId, SymbolKind, TypeDefProperty, TypeKind, UnionMemberProperty, + UnionProperty, VariableAffiniation, VariableProperty, }; use crate::symbol_path::{GenericSymbolPath, SymbolPath}; use crate::symbol_table; @@ -50,6 +50,8 @@ pub struct CreateSymbolTable<'a> { generic_references: Vec, default_clock_candidates: Vec, defualt_reset_candidates: Vec, + modport_member_ids: Vec, + function_ids: HashMap, } #[derive(Clone)] @@ -448,19 +450,33 @@ impl<'a> VerylGrammarTrait for CreateSymbolTable<'a> { .push(arg.identifier.identifier_token.token.text); for item in items { - let direction: crate::symbol::Direction = item.direction.as_ref().into(); - let property = ModportMemberProperty { direction }; - let id = self.insert_symbol( - &item.identifier.identifier_token.token, - SymbolKind::ModportMember(property), - false, - ); - members.push(id); + let kind = match &*item.direction { + Direction::Ref(_) | Direction::Modport(_) => { + continue; + } + Direction::Import(_) => { + let property = ModportFunctionMemberProperty { + function: SymbolId::default(), + }; + SymbolKind::ModportFunctionMember(property) + } + _ => { + let direction: crate::symbol::Direction = item.direction.as_ref().into(); + let property = ModportVariableMemberProperty { direction }; + SymbolKind::ModportVariableMember(property) + } + }; + + if let Some(id) = + self.insert_symbol(&item.identifier.identifier_token.token, kind, false) + { + members.push(id); + self.modport_member_ids.push(id); + } } self.namespace.pop(); - let members: Vec<_> = members.into_iter().flatten().collect(); let property = ModportProperty { members }; let kind = SymbolKind::Modport(property); self.insert_symbol(&arg.identifier.identifier_token.token, kind, false); @@ -785,11 +801,15 @@ impl<'a> VerylGrammarTrait for CreateSymbolTable<'a> { ports, ret, }; - self.insert_symbol( + + if let Some(id) = self.insert_symbol( &arg.identifier.identifier_token.token, SymbolKind::Function(property), false, - ); + ) { + self.function_ids + .insert(arg.identifier.identifier_token.token.text, id); + } } } Ok(()) @@ -802,6 +822,7 @@ impl<'a> VerylGrammarTrait for CreateSymbolTable<'a> { self.namespace.push(name); self.affiniation.push(VariableAffiniation::Module); self.module_namspace_depth = self.namespace.depth(); + self.function_ids.clear(); } HandlerPoint::After => { self.namespace.pop(); @@ -941,6 +962,8 @@ impl<'a> VerylGrammarTrait for CreateSymbolTable<'a> { HandlerPoint::Before => { self.namespace.push(name); self.affiniation.push(VariableAffiniation::Intarface); + self.function_ids.clear(); + self.modport_member_ids.clear(); } HandlerPoint::After => { self.namespace.pop(); @@ -975,6 +998,19 @@ impl<'a> VerylGrammarTrait for CreateSymbolTable<'a> { SymbolKind::Interface(property), public, ); + + // link modport function + for id in &self.modport_member_ids { + let mut mp_member = symbol_table::get(*id).unwrap(); + if let SymbolKind::ModportFunctionMember(_) = mp_member.kind { + if let Some(id) = self.function_ids.get(&mp_member.token.text) { + let property = ModportFunctionMemberProperty { function: *id }; + let kind = SymbolKind::ModportFunctionMember(property); + mp_member.kind = kind; + symbol_table::update(mp_member); + } + } + } } } Ok(()) @@ -1054,6 +1090,7 @@ impl<'a> VerylGrammarTrait for CreateSymbolTable<'a> { HandlerPoint::Before => { self.namespace.push(name); self.affiniation.push(VariableAffiniation::Package); + self.function_ids.clear(); } HandlerPoint::After => { self.namespace.pop(); diff --git a/crates/analyzer/src/symbol.rs b/crates/analyzer/src/symbol.rs index a0b6faaa..f85512f8 100644 --- a/crates/analyzer/src/symbol.rs +++ b/crates/analyzer/src/symbol.rs @@ -260,7 +260,8 @@ pub enum SymbolKind { EnumMember(EnumMemberProperty), Modport(ModportProperty), Genvar, - ModportMember(ModportMemberProperty), + ModportVariableMember(ModportVariableMemberProperty), + ModportFunctionMember(ModportFunctionMemberProperty), SystemVerilog, Namespace, SystemFunction, @@ -289,7 +290,8 @@ impl SymbolKind { SymbolKind::EnumMember(_) => "enum member".to_string(), SymbolKind::Modport(_) => "modport".to_string(), SymbolKind::Genvar => "genvar".to_string(), - SymbolKind::ModportMember(_) => "modport member".to_string(), + SymbolKind::ModportVariableMember(_) => "modport variable member".to_string(), + SymbolKind::ModportFunctionMember(_) => "modport function member".to_string(), SymbolKind::SystemVerilog => "systemverilog item".to_string(), SymbolKind::Namespace => "namespace".to_string(), SymbolKind::SystemFunction => "system function".to_string(), @@ -390,7 +392,10 @@ impl fmt::Display for SymbolKind { format!("modport ({} ports)", x.members.len()) } SymbolKind::Genvar => "genvar".to_string(), - SymbolKind::ModportMember(x) => format!("modport member ({})", x.direction), + SymbolKind::ModportVariableMember(x) => { + format!("modport variable member ({})", x.direction) + } + SymbolKind::ModportFunctionMember(_) => "modport function member".to_string(), SymbolKind::SystemVerilog => "systemverilog item".to_string(), SymbolKind::Namespace => "namespace".to_string(), SymbolKind::SystemFunction => "system function".to_string(), @@ -409,6 +414,7 @@ pub enum Direction { Ref, Interface, Modport, + Import, } impl fmt::Display for Direction { @@ -420,6 +426,7 @@ impl fmt::Display for Direction { Direction::Ref => "ref".to_string(), Direction::Interface => "interface".to_string(), Direction::Modport => "modport".to_string(), + Direction::Import => "import".to_string(), }; text.fmt(f) } @@ -433,6 +440,7 @@ impl From<&syntax_tree::Direction> for Direction { syntax_tree::Direction::Inout(_) => Direction::Inout, syntax_tree::Direction::Ref(_) => Direction::Ref, syntax_tree::Direction::Modport(_) => Direction::Modport, + syntax_tree::Direction::Import(_) => Direction::Import, } } } @@ -920,10 +928,15 @@ pub struct ModportProperty { } #[derive(Debug, Clone)] -pub struct ModportMemberProperty { +pub struct ModportVariableMemberProperty { pub direction: Direction, } +#[derive(Debug, Clone)] +pub struct ModportFunctionMemberProperty { + pub function: SymbolId, +} + #[derive(Debug, Clone)] pub struct GenericParameterProperty { pub default_value: Option, diff --git a/crates/analyzer/src/symbol_table.rs b/crates/analyzer/src/symbol_table.rs index 33011056..b7b86821 100644 --- a/crates/analyzer/src/symbol_table.rs +++ b/crates/analyzer/src/symbol_table.rs @@ -96,6 +96,11 @@ impl SymbolTable { self.symbol_table.get(&id).cloned() } + pub fn update(&mut self, symbol: Symbol) { + let id = symbol.id; + self.symbol_table.insert(id, symbol); + } + fn trace_user_defined<'a>( &self, mut context: ResolveContext<'a>, @@ -195,7 +200,7 @@ impl SymbolTable { context = self.trace_user_defined(context, &x.kind)?; } } - SymbolKind::ModportMember(_) => { + SymbolKind::ModportVariableMember(_) => { let path = SymbolPath::new(&[found.token.text]); context.namespace = found.namespace.clone(); context.namespace.pop(); @@ -244,6 +249,7 @@ impl SymbolTable { | SymbolKind::Struct(_) | SymbolKind::Union(_) | SymbolKind::Modport(_) + | SymbolKind::ModportFunctionMember(_) | SymbolKind::EnumMember(_) | SymbolKind::Block | SymbolKind::SystemFunction @@ -704,6 +710,10 @@ pub fn get(id: SymbolId) -> Option { SYMBOL_TABLE.with(|f| f.borrow().get(id)) } +pub fn update(symbol: Symbol) { + SYMBOL_TABLE.with(|f| f.borrow_mut().update(symbol)) +} + pub fn resolve>(path: T) -> Result { let SymbolPathNamespace(path, namespace) = path.into(); SYMBOL_TABLE.with(|f| f.borrow().resolve(&path, &namespace)) diff --git a/crates/analyzer/src/tests.rs b/crates/analyzer/src/tests.rs index 5abc7cd3..3c3fce0e 100644 --- a/crates/analyzer/src/tests.rs +++ b/crates/analyzer/src/tests.rs @@ -497,6 +497,61 @@ fn invalid_direction() { let errors = analyze(code); assert!(matches!(errors[0], AnalyzerError::InvalidDirection { .. })); + + let code = r#" + module ModuleB ( + b: import logic, + ) {} + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::InvalidDirection { .. })); + + let code = r#" + module ModuleC { + function FuncC ( + c: import logic, + ) {} + } + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::InvalidDirection { .. })); + + let code = r#" + module ModuleD { + function FuncD ( + D: modport logic, + ) {} + } + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::InvalidDirection { .. })); + + let code = r#" + interface InterfaceE { + var e: logic; + modport mp { + e: ref, + } + } + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::InvalidDirection { .. })); + + let code = r#" + interface InterfaceF { + var f: logic; + modport mp { + f: modport, + } + } + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::InvalidDirection { .. })); } #[test] @@ -573,6 +628,64 @@ fn invalid_statement() { assert!(matches!(errors[0], AnalyzerError::InvalidStatement { .. })); } +#[test] +fn invalid_modport_item() { + let code = r#" + interface InterfaceA { + var a: logic; + function f -> logic { + return 1; + } + + modport mp { + a: input , + f: import, + } + } + "#; + + let errors = analyze(code); + assert!(errors.is_empty()); + + let code = r#" + interface InterfaceB { + var a: logic; + function f -> logic { + return 1; + } + + modport mp { + f: input, + } + } + "#; + + let errors = analyze(code); + assert!(matches!( + errors[0], + AnalyzerError::InvalidModportVariableItem { .. } + )); + + let code = r#" + interface InterfaceC { + var a: logic; + function f -> logic { + return 1; + } + + modport mp { + a: import, + } + } + "#; + + let errors = analyze(code); + assert!(matches!( + errors[0], + AnalyzerError::InvalidModportFunctionItem { .. } + )); +} + #[test] fn mismatch_function_arity() { let code = r#" @@ -590,6 +703,49 @@ fn mismatch_function_arity() { errors[0], AnalyzerError::MismatchFunctionArity { .. } )); + + let code = r#" + interface InterfaceB { + function FuncB ( + a: input logic, + ) -> logic {} + } + + module ModuleB { + inst instB: InterfaceB(); + let _b: logic = instB.FuncB(1, 2); + } + "#; + + let errors = analyze(code); + assert!(matches!( + errors[0], + AnalyzerError::MismatchFunctionArity { .. } + )); + + let code = r#" + interface InterfaceC { + function FuncC ( + a: input logic, + ) -> logic {} + + modport mp { + FuncC: import, + } + } + + module ModuleC ( + ifc: modport InterfaceC::mp, + ) { + let _c: logic = ifc.FuncC(1, 2); + } + "#; + + let errors = analyze(code); + assert!(matches!( + errors[0], + AnalyzerError::MismatchFunctionArity { .. } + )); } #[test] @@ -1166,6 +1322,44 @@ fn unused_return() { let errors = analyze(code); assert!(matches!(errors[0], AnalyzerError::UnusedReturn { .. })); + + let code = r#" + interface InterfaceB { + function FuncB () -> logic { + return 1; + } + } + module ModuleB { + inst ifb: InterfaceB (); + initial { + ifb.FuncB(); + } + } + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::UnusedReturn { .. })); + + let code = r#" + interface InterfaceC { + modport mp { + FuncC: import, + } + function FuncC() -> logic { + return 1; + } + } + module ModuleC ( + ifc: modport InterfaceC::mp, + ){ + initial { + ifc.FuncC(); + } + } + "#; + + let errors = analyze(code); + assert!(matches!(errors[0], AnalyzerError::UnusedReturn { .. })); } #[test] diff --git a/crates/emitter/src/aligner.rs b/crates/emitter/src/aligner.rs index 1aec40cf..a965a9d7 100644 --- a/crates/emitter/src/aligner.rs +++ b/crates/emitter/src/aligner.rs @@ -936,6 +936,7 @@ impl VerylWalker for Aligner { Direction::Inout(x) => self.inout(&x.inout), Direction::Ref(x) => self.r#ref(&x.r#ref), Direction::Modport(_) => (), + Direction::Import(x) => self.import(&x.import), }; if !matches!(arg, Direction::Modport(_)) { self.aligns[align_kind::DIRECTION].finish_item(); diff --git a/crates/emitter/src/emitter.rs b/crates/emitter/src/emitter.rs index 6479e421..6e74204f 100644 --- a/crates/emitter/src/emitter.rs +++ b/crates/emitter/src/emitter.rs @@ -2499,6 +2499,7 @@ impl VerylWalker for Emitter { Direction::Inout(x) => self.inout(&x.inout), Direction::Ref(x) => self.r#ref(&x.r#ref), Direction::Modport(_) => (), + Direction::Import(x) => self.import(&x.import), }; } @@ -3291,7 +3292,8 @@ pub fn symbol_string(token: &VerylToken, symbol: &Symbol, context: &SymbolContex | SymbolKind::Block | SymbolKind::StructMember(_) | SymbolKind::UnionMember(_) - | SymbolKind::ModportMember(_) + | SymbolKind::ModportVariableMember(_) + | SymbolKind::ModportFunctionMember(_) | SymbolKind::Genvar | SymbolKind::Namespace | SymbolKind::SystemFunction => ret.push_str(&symbol.token.to_string()), diff --git a/crates/formatter/src/aligner.rs b/crates/formatter/src/aligner.rs index c5ad3e02..c2e58ede 100644 --- a/crates/formatter/src/aligner.rs +++ b/crates/formatter/src/aligner.rs @@ -769,6 +769,7 @@ impl VerylWalker for Aligner { Direction::Inout(x) => self.inout(&x.inout), Direction::Ref(x) => self.r#ref(&x.r#ref), Direction::Modport(x) => self.modport(&x.modport), + Direction::Import(x) => self.import(&x.import), }; self.aligns[align_kind::DIRECTION].finish_item(); } diff --git a/crates/languageserver/src/server.rs b/crates/languageserver/src/server.rs index a24da67d..24a932c4 100644 --- a/crates/languageserver/src/server.rs +++ b/crates/languageserver/src/server.rs @@ -324,7 +324,8 @@ impl Server { VerylSymbolKind::Modport(_) => SymbolKind::INTERFACE, VerylSymbolKind::Genvar => SymbolKind::VARIABLE, VerylSymbolKind::TypeDef(_) => SymbolKind::TYPE_PARAMETER, - VerylSymbolKind::ModportMember(_) => SymbolKind::VARIABLE, + VerylSymbolKind::ModportVariableMember(_) => SymbolKind::VARIABLE, + VerylSymbolKind::ModportFunctionMember(_) => SymbolKind::FUNCTION, VerylSymbolKind::SystemVerilog => SymbolKind::NAMESPACE, VerylSymbolKind::Namespace => SymbolKind::NAMESPACE, VerylSymbolKind::SystemFunction => SymbolKind::FUNCTION, diff --git a/crates/parser/src/generated/veryl-exp.par b/crates/parser/src/generated/veryl-exp.par index f65e49f2..c2be4c2a 100644 --- a/crates/parser/src/generated/veryl-exp.par +++ b/crates/parser/src/generated/veryl-exp.par @@ -761,169 +761,170 @@ /* 746 */ Direction: Inout; /* 747 */ Direction: Ref; /* 748 */ Direction: Modport; -/* 749 */ FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ LBrace FunctionDeclarationList /* Vec */ RBrace; -/* 750 */ FunctionDeclarationList /* Vec::Push */: FunctionItem FunctionDeclarationList; -/* 751 */ FunctionDeclarationList /* Vec::New */: ; -/* 752 */ FunctionDeclarationOpt1 /* Option::Some */: MinusGT ScalarType; -/* 753 */ FunctionDeclarationOpt1 /* Option::None */: ; -/* 754 */ FunctionDeclarationOpt0 /* Option::Some */: PortDeclaration; -/* 755 */ FunctionDeclarationOpt0 /* Option::None */: ; -/* 756 */ FunctionDeclarationOpt /* Option::Some */: WithGenericParameter; -/* 757 */ FunctionDeclarationOpt /* Option::None */: ; -/* 758 */ FunctionItem: VarDeclaration; -/* 759 */ FunctionItem: Statement; -/* 760 */ ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon; -/* 761 */ ImportDeclarationOpt /* Option::Some */: ColonColon Star; -/* 762 */ ImportDeclarationOpt /* Option::None */: ; -/* 763 */ ExportDeclaration: Export ExportDeclarationGroup Semicolon; -/* 764 */ ExportDeclarationGroup: Star; -/* 765 */ ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */; -/* 766 */ ExportDeclarationOpt /* Option::Some */: ColonColon Star; -/* 767 */ ExportDeclarationOpt /* Option::None */: ; -/* 768 */ ModuleDeclaration: ModuleDeclarationOpt /* Option */ Module Identifier ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace; -/* 769 */ ModuleDeclarationList /* Vec::Push */: ModuleGroup ModuleDeclarationList; -/* 770 */ ModuleDeclarationList /* Vec::New */: ; -/* 771 */ ModuleDeclarationOpt2 /* Option::Some */: PortDeclaration; -/* 772 */ ModuleDeclarationOpt2 /* Option::None */: ; -/* 773 */ ModuleDeclarationOpt1 /* Option::Some */: WithParameter; -/* 774 */ ModuleDeclarationOpt1 /* Option::None */: ; -/* 775 */ ModuleDeclarationOpt0 /* Option::Some */: WithGenericParameter; -/* 776 */ ModuleDeclarationOpt0 /* Option::None */: ; -/* 777 */ ModuleDeclarationOpt /* Option::Some */: Pub; -/* 778 */ ModuleDeclarationOpt /* Option::None */: ; -/* 779 */ ModuleIfDeclaration: If Expression ModuleNamedBlock ModuleIfDeclarationList /* Vec */ ModuleIfDeclarationOpt /* Option */; -/* 780 */ ModuleIfDeclarationList /* Vec::Push */: Else If Expression ModuleOptionalNamedBlock ModuleIfDeclarationList; -/* 781 */ ModuleIfDeclarationList /* Vec::New */: ; -/* 782 */ ModuleIfDeclarationOpt /* Option::Some */: Else ModuleOptionalNamedBlock; -/* 783 */ ModuleIfDeclarationOpt /* Option::None */: ; -/* 784 */ ModuleForDeclaration: For Identifier In Range ModuleForDeclarationOpt /* Option */ ModuleNamedBlock; -/* 785 */ ModuleForDeclarationOpt /* Option::Some */: Step AssignmentOperator Expression; -/* 786 */ ModuleForDeclarationOpt /* Option::None */: ; -/* 787 */ ModuleNamedBlock: Colon Identifier LBrace ModuleNamedBlockList /* Vec */ RBrace; -/* 788 */ ModuleNamedBlockList /* Vec::Push */: ModuleGroup ModuleNamedBlockList; -/* 789 */ ModuleNamedBlockList /* Vec::New */: ; -/* 790 */ ModuleOptionalNamedBlock: ModuleOptionalNamedBlockOpt /* Option */ LBrace ModuleOptionalNamedBlockList /* Vec */ RBrace; -/* 791 */ ModuleOptionalNamedBlockList /* Vec::Push */: ModuleGroup ModuleOptionalNamedBlockList; -/* 792 */ ModuleOptionalNamedBlockList /* Vec::New */: ; -/* 793 */ ModuleOptionalNamedBlockOpt /* Option::Some */: Colon Identifier; -/* 794 */ ModuleOptionalNamedBlockOpt /* Option::None */: ; -/* 795 */ ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup; -/* 796 */ ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace; -/* 797 */ ModuleGroupGroupList /* Vec::Push */: ModuleGroup ModuleGroupGroupList; -/* 798 */ ModuleGroupGroupList /* Vec::New */: ; -/* 799 */ ModuleGroupGroup: ModuleItem; -/* 800 */ ModuleGroupList /* Vec::Push */: Attribute ModuleGroupList; -/* 801 */ ModuleGroupList /* Vec::New */: ; -/* 802 */ ModuleItem: LetDeclaration; -/* 803 */ ModuleItem: VarDeclaration; -/* 804 */ ModuleItem: InstDeclaration; -/* 805 */ ModuleItem: TypeDefDeclaration; -/* 806 */ ModuleItem: LocalDeclaration; -/* 807 */ ModuleItem: AlwaysFfDeclaration; -/* 808 */ ModuleItem: AlwaysCombDeclaration; -/* 809 */ ModuleItem: AssignDeclaration; -/* 810 */ ModuleItem: FunctionDeclaration; -/* 811 */ ModuleItem: ModuleIfDeclaration; -/* 812 */ ModuleItem: ModuleForDeclaration; -/* 813 */ ModuleItem: EnumDeclaration; -/* 814 */ ModuleItem: StructUnionDeclaration; -/* 815 */ ModuleItem: ModuleNamedBlock; -/* 816 */ ModuleItem: ImportDeclaration; -/* 817 */ ModuleItem: InitialDeclaration; -/* 818 */ ModuleItem: FinalDeclaration; -/* 819 */ InterfaceDeclaration: InterfaceDeclarationOpt /* Option */ Interface Identifier InterfaceDeclarationOpt0 /* Option */ InterfaceDeclarationOpt1 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace; -/* 820 */ InterfaceDeclarationList /* Vec::Push */: InterfaceGroup InterfaceDeclarationList; -/* 821 */ InterfaceDeclarationList /* Vec::New */: ; -/* 822 */ InterfaceDeclarationOpt1 /* Option::Some */: WithParameter; -/* 823 */ InterfaceDeclarationOpt1 /* Option::None */: ; -/* 824 */ InterfaceDeclarationOpt0 /* Option::Some */: WithGenericParameter; -/* 825 */ InterfaceDeclarationOpt0 /* Option::None */: ; -/* 826 */ InterfaceDeclarationOpt /* Option::Some */: Pub; -/* 827 */ InterfaceDeclarationOpt /* Option::None */: ; -/* 828 */ InterfaceIfDeclaration: If Expression InterfaceNamedBlock InterfaceIfDeclarationList /* Vec */ InterfaceIfDeclarationOpt /* Option */; -/* 829 */ InterfaceIfDeclarationList /* Vec::Push */: Else If Expression InterfaceOptionalNamedBlock InterfaceIfDeclarationList; -/* 830 */ InterfaceIfDeclarationList /* Vec::New */: ; -/* 831 */ InterfaceIfDeclarationOpt /* Option::Some */: Else InterfaceOptionalNamedBlock; -/* 832 */ InterfaceIfDeclarationOpt /* Option::None */: ; -/* 833 */ InterfaceForDeclaration: For Identifier In Range InterfaceForDeclarationOpt /* Option */ InterfaceNamedBlock; -/* 834 */ InterfaceForDeclarationOpt /* Option::Some */: Step AssignmentOperator Expression; -/* 835 */ InterfaceForDeclarationOpt /* Option::None */: ; -/* 836 */ InterfaceNamedBlock: Colon Identifier LBrace InterfaceNamedBlockList /* Vec */ RBrace; -/* 837 */ InterfaceNamedBlockList /* Vec::Push */: InterfaceGroup InterfaceNamedBlockList; -/* 838 */ InterfaceNamedBlockList /* Vec::New */: ; -/* 839 */ InterfaceOptionalNamedBlock: InterfaceOptionalNamedBlockOpt /* Option */ LBrace InterfaceOptionalNamedBlockList /* Vec */ RBrace; -/* 840 */ InterfaceOptionalNamedBlockList /* Vec::Push */: InterfaceGroup InterfaceOptionalNamedBlockList; -/* 841 */ InterfaceOptionalNamedBlockList /* Vec::New */: ; -/* 842 */ InterfaceOptionalNamedBlockOpt /* Option::Some */: Colon Identifier; -/* 843 */ InterfaceOptionalNamedBlockOpt /* Option::None */: ; -/* 844 */ InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup; -/* 845 */ InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace; -/* 846 */ InterfaceGroupGroupList /* Vec::Push */: InterfaceGroup InterfaceGroupGroupList; -/* 847 */ InterfaceGroupGroupList /* Vec::New */: ; -/* 848 */ InterfaceGroupGroup: InterfaceItem; -/* 849 */ InterfaceGroupList /* Vec::Push */: Attribute InterfaceGroupList; -/* 850 */ InterfaceGroupList /* Vec::New */: ; -/* 851 */ InterfaceItem: LetDeclaration; -/* 852 */ InterfaceItem: VarDeclaration; -/* 853 */ InterfaceItem: LocalDeclaration; -/* 854 */ InterfaceItem: ModportDeclaration; -/* 855 */ InterfaceItem: InterfaceIfDeclaration; -/* 856 */ InterfaceItem: InterfaceForDeclaration; -/* 857 */ InterfaceItem: TypeDefDeclaration; -/* 858 */ InterfaceItem: EnumDeclaration; -/* 859 */ InterfaceItem: StructUnionDeclaration; -/* 860 */ InterfaceItem: InterfaceNamedBlock; -/* 861 */ InterfaceItem: FunctionDeclaration; -/* 862 */ InterfaceItem: ImportDeclaration; -/* 863 */ InterfaceItem: InitialDeclaration; -/* 864 */ InterfaceItem: FinalDeclaration; -/* 865 */ PackageDeclaration: PackageDeclarationOpt /* Option */ Package Identifier PackageDeclarationOpt0 /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace; -/* 866 */ PackageDeclarationList /* Vec::Push */: PackageGroup PackageDeclarationList; -/* 867 */ PackageDeclarationList /* Vec::New */: ; -/* 868 */ PackageDeclarationOpt0 /* Option::Some */: WithGenericParameter; -/* 869 */ PackageDeclarationOpt0 /* Option::None */: ; -/* 870 */ PackageDeclarationOpt /* Option::Some */: Pub; -/* 871 */ PackageDeclarationOpt /* Option::None */: ; -/* 872 */ PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup; -/* 873 */ PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace; -/* 874 */ PackageGroupGroupList /* Vec::Push */: PackageGroup PackageGroupGroupList; -/* 875 */ PackageGroupGroupList /* Vec::New */: ; -/* 876 */ PackageGroupGroup: PackageItem; -/* 877 */ PackageGroupList /* Vec::Push */: Attribute PackageGroupList; -/* 878 */ PackageGroupList /* Vec::New */: ; -/* 879 */ PackageItem: VarDeclaration; -/* 880 */ PackageItem: LocalDeclaration; -/* 881 */ PackageItem: TypeDefDeclaration; -/* 882 */ PackageItem: EnumDeclaration; -/* 883 */ PackageItem: StructUnionDeclaration; -/* 884 */ PackageItem: FunctionDeclaration; -/* 885 */ PackageItem: ImportDeclaration; -/* 886 */ PackageItem: ExportDeclaration; -/* 887 */ PackageItem: InitialDeclaration; -/* 888 */ PackageItem: FinalDeclaration; -/* 889 */ EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent; -/* 890 */ EmbedContent: EmbedContentToken : VerylToken; -/* 891 */ EmbedContentToken: LBraceTerm %push(Embed) LBraceTerm LBraceTerm EmbedContentTokenList /* Vec */ RBraceTerm RBraceTerm RBraceTerm %pop() Comments; -/* 892 */ EmbedContentTokenList /* Vec::Push */: EmbedItem EmbedContentTokenList; -/* 893 */ EmbedContentTokenList /* Vec::New */: ; -/* 894 */ EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm; -/* 895 */ EmbedItemList /* Vec::Push */: EmbedItem EmbedItemList; -/* 896 */ EmbedItemList /* Vec::New */: ; -/* 897 */ EmbedItem: AnyTerm; -/* 898 */ IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon; -/* 899 */ DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup; -/* 900 */ DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace; -/* 901 */ DescriptionGroupGroupList /* Vec::Push */: DescriptionGroup DescriptionGroupGroupList; -/* 902 */ DescriptionGroupGroupList /* Vec::New */: ; -/* 903 */ DescriptionGroupGroup: DescriptionItem; -/* 904 */ DescriptionGroupList /* Vec::Push */: Attribute DescriptionGroupList; -/* 905 */ DescriptionGroupList /* Vec::New */: ; -/* 906 */ DescriptionItem: ModuleDeclaration; -/* 907 */ DescriptionItem: InterfaceDeclaration; -/* 908 */ DescriptionItem: PackageDeclaration; -/* 909 */ DescriptionItem: ImportDeclaration; -/* 910 */ DescriptionItem: EmbedDeclaration; -/* 911 */ DescriptionItem: IncludeDeclaration; -/* 912 */ Veryl: Start VerylList /* Vec */; -/* 913 */ VerylList /* Vec::Push */: DescriptionGroup VerylList; -/* 914 */ VerylList /* Vec::New */: ; +/* 749 */ Direction: Import; +/* 750 */ FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ LBrace FunctionDeclarationList /* Vec */ RBrace; +/* 751 */ FunctionDeclarationList /* Vec::Push */: FunctionItem FunctionDeclarationList; +/* 752 */ FunctionDeclarationList /* Vec::New */: ; +/* 753 */ FunctionDeclarationOpt1 /* Option::Some */: MinusGT ScalarType; +/* 754 */ FunctionDeclarationOpt1 /* Option::None */: ; +/* 755 */ FunctionDeclarationOpt0 /* Option::Some */: PortDeclaration; +/* 756 */ FunctionDeclarationOpt0 /* Option::None */: ; +/* 757 */ FunctionDeclarationOpt /* Option::Some */: WithGenericParameter; +/* 758 */ FunctionDeclarationOpt /* Option::None */: ; +/* 759 */ FunctionItem: VarDeclaration; +/* 760 */ FunctionItem: Statement; +/* 761 */ ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon; +/* 762 */ ImportDeclarationOpt /* Option::Some */: ColonColon Star; +/* 763 */ ImportDeclarationOpt /* Option::None */: ; +/* 764 */ ExportDeclaration: Export ExportDeclarationGroup Semicolon; +/* 765 */ ExportDeclarationGroup: Star; +/* 766 */ ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */; +/* 767 */ ExportDeclarationOpt /* Option::Some */: ColonColon Star; +/* 768 */ ExportDeclarationOpt /* Option::None */: ; +/* 769 */ ModuleDeclaration: ModuleDeclarationOpt /* Option */ Module Identifier ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace; +/* 770 */ ModuleDeclarationList /* Vec::Push */: ModuleGroup ModuleDeclarationList; +/* 771 */ ModuleDeclarationList /* Vec::New */: ; +/* 772 */ ModuleDeclarationOpt2 /* Option::Some */: PortDeclaration; +/* 773 */ ModuleDeclarationOpt2 /* Option::None */: ; +/* 774 */ ModuleDeclarationOpt1 /* Option::Some */: WithParameter; +/* 775 */ ModuleDeclarationOpt1 /* Option::None */: ; +/* 776 */ ModuleDeclarationOpt0 /* Option::Some */: WithGenericParameter; +/* 777 */ ModuleDeclarationOpt0 /* Option::None */: ; +/* 778 */ ModuleDeclarationOpt /* Option::Some */: Pub; +/* 779 */ ModuleDeclarationOpt /* Option::None */: ; +/* 780 */ ModuleIfDeclaration: If Expression ModuleNamedBlock ModuleIfDeclarationList /* Vec */ ModuleIfDeclarationOpt /* Option */; +/* 781 */ ModuleIfDeclarationList /* Vec::Push */: Else If Expression ModuleOptionalNamedBlock ModuleIfDeclarationList; +/* 782 */ ModuleIfDeclarationList /* Vec::New */: ; +/* 783 */ ModuleIfDeclarationOpt /* Option::Some */: Else ModuleOptionalNamedBlock; +/* 784 */ ModuleIfDeclarationOpt /* Option::None */: ; +/* 785 */ ModuleForDeclaration: For Identifier In Range ModuleForDeclarationOpt /* Option */ ModuleNamedBlock; +/* 786 */ ModuleForDeclarationOpt /* Option::Some */: Step AssignmentOperator Expression; +/* 787 */ ModuleForDeclarationOpt /* Option::None */: ; +/* 788 */ ModuleNamedBlock: Colon Identifier LBrace ModuleNamedBlockList /* Vec */ RBrace; +/* 789 */ ModuleNamedBlockList /* Vec::Push */: ModuleGroup ModuleNamedBlockList; +/* 790 */ ModuleNamedBlockList /* Vec::New */: ; +/* 791 */ ModuleOptionalNamedBlock: ModuleOptionalNamedBlockOpt /* Option */ LBrace ModuleOptionalNamedBlockList /* Vec */ RBrace; +/* 792 */ ModuleOptionalNamedBlockList /* Vec::Push */: ModuleGroup ModuleOptionalNamedBlockList; +/* 793 */ ModuleOptionalNamedBlockList /* Vec::New */: ; +/* 794 */ ModuleOptionalNamedBlockOpt /* Option::Some */: Colon Identifier; +/* 795 */ ModuleOptionalNamedBlockOpt /* Option::None */: ; +/* 796 */ ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup; +/* 797 */ ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace; +/* 798 */ ModuleGroupGroupList /* Vec::Push */: ModuleGroup ModuleGroupGroupList; +/* 799 */ ModuleGroupGroupList /* Vec::New */: ; +/* 800 */ ModuleGroupGroup: ModuleItem; +/* 801 */ ModuleGroupList /* Vec::Push */: Attribute ModuleGroupList; +/* 802 */ ModuleGroupList /* Vec::New */: ; +/* 803 */ ModuleItem: LetDeclaration; +/* 804 */ ModuleItem: VarDeclaration; +/* 805 */ ModuleItem: InstDeclaration; +/* 806 */ ModuleItem: TypeDefDeclaration; +/* 807 */ ModuleItem: LocalDeclaration; +/* 808 */ ModuleItem: AlwaysFfDeclaration; +/* 809 */ ModuleItem: AlwaysCombDeclaration; +/* 810 */ ModuleItem: AssignDeclaration; +/* 811 */ ModuleItem: FunctionDeclaration; +/* 812 */ ModuleItem: ModuleIfDeclaration; +/* 813 */ ModuleItem: ModuleForDeclaration; +/* 814 */ ModuleItem: EnumDeclaration; +/* 815 */ ModuleItem: StructUnionDeclaration; +/* 816 */ ModuleItem: ModuleNamedBlock; +/* 817 */ ModuleItem: ImportDeclaration; +/* 818 */ ModuleItem: InitialDeclaration; +/* 819 */ ModuleItem: FinalDeclaration; +/* 820 */ InterfaceDeclaration: InterfaceDeclarationOpt /* Option */ Interface Identifier InterfaceDeclarationOpt0 /* Option */ InterfaceDeclarationOpt1 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace; +/* 821 */ InterfaceDeclarationList /* Vec::Push */: InterfaceGroup InterfaceDeclarationList; +/* 822 */ InterfaceDeclarationList /* Vec::New */: ; +/* 823 */ InterfaceDeclarationOpt1 /* Option::Some */: WithParameter; +/* 824 */ InterfaceDeclarationOpt1 /* Option::None */: ; +/* 825 */ InterfaceDeclarationOpt0 /* Option::Some */: WithGenericParameter; +/* 826 */ InterfaceDeclarationOpt0 /* Option::None */: ; +/* 827 */ InterfaceDeclarationOpt /* Option::Some */: Pub; +/* 828 */ InterfaceDeclarationOpt /* Option::None */: ; +/* 829 */ InterfaceIfDeclaration: If Expression InterfaceNamedBlock InterfaceIfDeclarationList /* Vec */ InterfaceIfDeclarationOpt /* Option */; +/* 830 */ InterfaceIfDeclarationList /* Vec::Push */: Else If Expression InterfaceOptionalNamedBlock InterfaceIfDeclarationList; +/* 831 */ InterfaceIfDeclarationList /* Vec::New */: ; +/* 832 */ InterfaceIfDeclarationOpt /* Option::Some */: Else InterfaceOptionalNamedBlock; +/* 833 */ InterfaceIfDeclarationOpt /* Option::None */: ; +/* 834 */ InterfaceForDeclaration: For Identifier In Range InterfaceForDeclarationOpt /* Option */ InterfaceNamedBlock; +/* 835 */ InterfaceForDeclarationOpt /* Option::Some */: Step AssignmentOperator Expression; +/* 836 */ InterfaceForDeclarationOpt /* Option::None */: ; +/* 837 */ InterfaceNamedBlock: Colon Identifier LBrace InterfaceNamedBlockList /* Vec */ RBrace; +/* 838 */ InterfaceNamedBlockList /* Vec::Push */: InterfaceGroup InterfaceNamedBlockList; +/* 839 */ InterfaceNamedBlockList /* Vec::New */: ; +/* 840 */ InterfaceOptionalNamedBlock: InterfaceOptionalNamedBlockOpt /* Option */ LBrace InterfaceOptionalNamedBlockList /* Vec */ RBrace; +/* 841 */ InterfaceOptionalNamedBlockList /* Vec::Push */: InterfaceGroup InterfaceOptionalNamedBlockList; +/* 842 */ InterfaceOptionalNamedBlockList /* Vec::New */: ; +/* 843 */ InterfaceOptionalNamedBlockOpt /* Option::Some */: Colon Identifier; +/* 844 */ InterfaceOptionalNamedBlockOpt /* Option::None */: ; +/* 845 */ InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup; +/* 846 */ InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace; +/* 847 */ InterfaceGroupGroupList /* Vec::Push */: InterfaceGroup InterfaceGroupGroupList; +/* 848 */ InterfaceGroupGroupList /* Vec::New */: ; +/* 849 */ InterfaceGroupGroup: InterfaceItem; +/* 850 */ InterfaceGroupList /* Vec::Push */: Attribute InterfaceGroupList; +/* 851 */ InterfaceGroupList /* Vec::New */: ; +/* 852 */ InterfaceItem: LetDeclaration; +/* 853 */ InterfaceItem: VarDeclaration; +/* 854 */ InterfaceItem: LocalDeclaration; +/* 855 */ InterfaceItem: ModportDeclaration; +/* 856 */ InterfaceItem: InterfaceIfDeclaration; +/* 857 */ InterfaceItem: InterfaceForDeclaration; +/* 858 */ InterfaceItem: TypeDefDeclaration; +/* 859 */ InterfaceItem: EnumDeclaration; +/* 860 */ InterfaceItem: StructUnionDeclaration; +/* 861 */ InterfaceItem: InterfaceNamedBlock; +/* 862 */ InterfaceItem: FunctionDeclaration; +/* 863 */ InterfaceItem: ImportDeclaration; +/* 864 */ InterfaceItem: InitialDeclaration; +/* 865 */ InterfaceItem: FinalDeclaration; +/* 866 */ PackageDeclaration: PackageDeclarationOpt /* Option */ Package Identifier PackageDeclarationOpt0 /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace; +/* 867 */ PackageDeclarationList /* Vec::Push */: PackageGroup PackageDeclarationList; +/* 868 */ PackageDeclarationList /* Vec::New */: ; +/* 869 */ PackageDeclarationOpt0 /* Option::Some */: WithGenericParameter; +/* 870 */ PackageDeclarationOpt0 /* Option::None */: ; +/* 871 */ PackageDeclarationOpt /* Option::Some */: Pub; +/* 872 */ PackageDeclarationOpt /* Option::None */: ; +/* 873 */ PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup; +/* 874 */ PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace; +/* 875 */ PackageGroupGroupList /* Vec::Push */: PackageGroup PackageGroupGroupList; +/* 876 */ PackageGroupGroupList /* Vec::New */: ; +/* 877 */ PackageGroupGroup: PackageItem; +/* 878 */ PackageGroupList /* Vec::Push */: Attribute PackageGroupList; +/* 879 */ PackageGroupList /* Vec::New */: ; +/* 880 */ PackageItem: VarDeclaration; +/* 881 */ PackageItem: LocalDeclaration; +/* 882 */ PackageItem: TypeDefDeclaration; +/* 883 */ PackageItem: EnumDeclaration; +/* 884 */ PackageItem: StructUnionDeclaration; +/* 885 */ PackageItem: FunctionDeclaration; +/* 886 */ PackageItem: ImportDeclaration; +/* 887 */ PackageItem: ExportDeclaration; +/* 888 */ PackageItem: InitialDeclaration; +/* 889 */ PackageItem: FinalDeclaration; +/* 890 */ EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent; +/* 891 */ EmbedContent: EmbedContentToken : VerylToken; +/* 892 */ EmbedContentToken: LBraceTerm %push(Embed) LBraceTerm LBraceTerm EmbedContentTokenList /* Vec */ RBraceTerm RBraceTerm RBraceTerm %pop() Comments; +/* 893 */ EmbedContentTokenList /* Vec::Push */: EmbedItem EmbedContentTokenList; +/* 894 */ EmbedContentTokenList /* Vec::New */: ; +/* 895 */ EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm; +/* 896 */ EmbedItemList /* Vec::Push */: EmbedItem EmbedItemList; +/* 897 */ EmbedItemList /* Vec::New */: ; +/* 898 */ EmbedItem: AnyTerm; +/* 899 */ IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon; +/* 900 */ DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup; +/* 901 */ DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace; +/* 902 */ DescriptionGroupGroupList /* Vec::Push */: DescriptionGroup DescriptionGroupGroupList; +/* 903 */ DescriptionGroupGroupList /* Vec::New */: ; +/* 904 */ DescriptionGroupGroup: DescriptionItem; +/* 905 */ DescriptionGroupList /* Vec::Push */: Attribute DescriptionGroupList; +/* 906 */ DescriptionGroupList /* Vec::New */: ; +/* 907 */ DescriptionItem: ModuleDeclaration; +/* 908 */ DescriptionItem: InterfaceDeclaration; +/* 909 */ DescriptionItem: PackageDeclaration; +/* 910 */ DescriptionItem: ImportDeclaration; +/* 911 */ DescriptionItem: EmbedDeclaration; +/* 912 */ DescriptionItem: IncludeDeclaration; +/* 913 */ Veryl: Start VerylList /* Vec */; +/* 914 */ VerylList /* Vec::Push */: DescriptionGroup VerylList; +/* 915 */ VerylList /* Vec::New */: ; diff --git a/crates/parser/src/generated/veryl_grammar_trait.rs b/crates/parser/src/generated/veryl_grammar_trait.rs index 8d069af0..8f33842c 100644 --- a/crates/parser/src/generated/veryl_grammar_trait.rs +++ b/crates/parser/src/generated/veryl_grammar_trait.rs @@ -3702,7 +3702,19 @@ pub struct DirectionModport { } /// -/// Type derived for production 758 +/// Type derived for production 749 +/// +/// `Direction: Import;` +/// +#[allow(dead_code)] +#[derive(Builder, Debug, Clone)] +#[builder(crate = "parol_runtime::derive_builder")] +pub struct DirectionImport { + pub import: Box, +} + +/// +/// Type derived for production 759 /// /// `FunctionItem: VarDeclaration;` /// @@ -3714,7 +3726,7 @@ pub struct FunctionItemVarDeclaration { } /// -/// Type derived for production 759 +/// Type derived for production 760 /// /// `FunctionItem: Statement;` /// @@ -3726,7 +3738,7 @@ pub struct FunctionItemStatement { } /// -/// Type derived for production 764 +/// Type derived for production 765 /// /// `ExportDeclarationGroup: Star;` /// @@ -3738,7 +3750,7 @@ pub struct ExportDeclarationGroupStar { } /// -/// Type derived for production 765 +/// Type derived for production 766 /// /// `ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */;` /// @@ -3751,7 +3763,7 @@ pub struct ExportDeclarationGroupScopedIdentifierExportDeclarationOpt { } /// -/// Type derived for production 796 +/// Type derived for production 797 /// /// `ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace;` /// @@ -3765,7 +3777,7 @@ pub struct ModuleGroupGroupLBraceModuleGroupGroupListRBrace { } /// -/// Type derived for production 799 +/// Type derived for production 800 /// /// `ModuleGroupGroup: ModuleItem;` /// @@ -3777,7 +3789,7 @@ pub struct ModuleGroupGroupModuleItem { } /// -/// Type derived for production 802 +/// Type derived for production 803 /// /// `ModuleItem: LetDeclaration;` /// @@ -3789,7 +3801,7 @@ pub struct ModuleItemLetDeclaration { } /// -/// Type derived for production 803 +/// Type derived for production 804 /// /// `ModuleItem: VarDeclaration;` /// @@ -3801,7 +3813,7 @@ pub struct ModuleItemVarDeclaration { } /// -/// Type derived for production 804 +/// Type derived for production 805 /// /// `ModuleItem: InstDeclaration;` /// @@ -3813,7 +3825,7 @@ pub struct ModuleItemInstDeclaration { } /// -/// Type derived for production 805 +/// Type derived for production 806 /// /// `ModuleItem: TypeDefDeclaration;` /// @@ -3825,7 +3837,7 @@ pub struct ModuleItemTypeDefDeclaration { } /// -/// Type derived for production 806 +/// Type derived for production 807 /// /// `ModuleItem: LocalDeclaration;` /// @@ -3837,7 +3849,7 @@ pub struct ModuleItemLocalDeclaration { } /// -/// Type derived for production 807 +/// Type derived for production 808 /// /// `ModuleItem: AlwaysFfDeclaration;` /// @@ -3849,7 +3861,7 @@ pub struct ModuleItemAlwaysFfDeclaration { } /// -/// Type derived for production 808 +/// Type derived for production 809 /// /// `ModuleItem: AlwaysCombDeclaration;` /// @@ -3861,7 +3873,7 @@ pub struct ModuleItemAlwaysCombDeclaration { } /// -/// Type derived for production 809 +/// Type derived for production 810 /// /// `ModuleItem: AssignDeclaration;` /// @@ -3873,7 +3885,7 @@ pub struct ModuleItemAssignDeclaration { } /// -/// Type derived for production 810 +/// Type derived for production 811 /// /// `ModuleItem: FunctionDeclaration;` /// @@ -3885,7 +3897,7 @@ pub struct ModuleItemFunctionDeclaration { } /// -/// Type derived for production 811 +/// Type derived for production 812 /// /// `ModuleItem: ModuleIfDeclaration;` /// @@ -3897,7 +3909,7 @@ pub struct ModuleItemModuleIfDeclaration { } /// -/// Type derived for production 812 +/// Type derived for production 813 /// /// `ModuleItem: ModuleForDeclaration;` /// @@ -3909,7 +3921,7 @@ pub struct ModuleItemModuleForDeclaration { } /// -/// Type derived for production 813 +/// Type derived for production 814 /// /// `ModuleItem: EnumDeclaration;` /// @@ -3921,7 +3933,7 @@ pub struct ModuleItemEnumDeclaration { } /// -/// Type derived for production 814 +/// Type derived for production 815 /// /// `ModuleItem: StructUnionDeclaration;` /// @@ -3933,7 +3945,7 @@ pub struct ModuleItemStructUnionDeclaration { } /// -/// Type derived for production 815 +/// Type derived for production 816 /// /// `ModuleItem: ModuleNamedBlock;` /// @@ -3945,7 +3957,7 @@ pub struct ModuleItemModuleNamedBlock { } /// -/// Type derived for production 816 +/// Type derived for production 817 /// /// `ModuleItem: ImportDeclaration;` /// @@ -3957,7 +3969,7 @@ pub struct ModuleItemImportDeclaration { } /// -/// Type derived for production 817 +/// Type derived for production 818 /// /// `ModuleItem: InitialDeclaration;` /// @@ -3969,7 +3981,7 @@ pub struct ModuleItemInitialDeclaration { } /// -/// Type derived for production 818 +/// Type derived for production 819 /// /// `ModuleItem: FinalDeclaration;` /// @@ -3981,7 +3993,7 @@ pub struct ModuleItemFinalDeclaration { } /// -/// Type derived for production 845 +/// Type derived for production 846 /// /// `InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace;` /// @@ -3995,7 +4007,7 @@ pub struct InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace { } /// -/// Type derived for production 848 +/// Type derived for production 849 /// /// `InterfaceGroupGroup: InterfaceItem;` /// @@ -4007,7 +4019,7 @@ pub struct InterfaceGroupGroupInterfaceItem { } /// -/// Type derived for production 851 +/// Type derived for production 852 /// /// `InterfaceItem: LetDeclaration;` /// @@ -4019,7 +4031,7 @@ pub struct InterfaceItemLetDeclaration { } /// -/// Type derived for production 852 +/// Type derived for production 853 /// /// `InterfaceItem: VarDeclaration;` /// @@ -4031,7 +4043,7 @@ pub struct InterfaceItemVarDeclaration { } /// -/// Type derived for production 853 +/// Type derived for production 854 /// /// `InterfaceItem: LocalDeclaration;` /// @@ -4043,7 +4055,7 @@ pub struct InterfaceItemLocalDeclaration { } /// -/// Type derived for production 854 +/// Type derived for production 855 /// /// `InterfaceItem: ModportDeclaration;` /// @@ -4055,7 +4067,7 @@ pub struct InterfaceItemModportDeclaration { } /// -/// Type derived for production 855 +/// Type derived for production 856 /// /// `InterfaceItem: InterfaceIfDeclaration;` /// @@ -4067,7 +4079,7 @@ pub struct InterfaceItemInterfaceIfDeclaration { } /// -/// Type derived for production 856 +/// Type derived for production 857 /// /// `InterfaceItem: InterfaceForDeclaration;` /// @@ -4079,7 +4091,7 @@ pub struct InterfaceItemInterfaceForDeclaration { } /// -/// Type derived for production 857 +/// Type derived for production 858 /// /// `InterfaceItem: TypeDefDeclaration;` /// @@ -4091,7 +4103,7 @@ pub struct InterfaceItemTypeDefDeclaration { } /// -/// Type derived for production 858 +/// Type derived for production 859 /// /// `InterfaceItem: EnumDeclaration;` /// @@ -4103,7 +4115,7 @@ pub struct InterfaceItemEnumDeclaration { } /// -/// Type derived for production 859 +/// Type derived for production 860 /// /// `InterfaceItem: StructUnionDeclaration;` /// @@ -4115,7 +4127,7 @@ pub struct InterfaceItemStructUnionDeclaration { } /// -/// Type derived for production 860 +/// Type derived for production 861 /// /// `InterfaceItem: InterfaceNamedBlock;` /// @@ -4127,7 +4139,7 @@ pub struct InterfaceItemInterfaceNamedBlock { } /// -/// Type derived for production 861 +/// Type derived for production 862 /// /// `InterfaceItem: FunctionDeclaration;` /// @@ -4139,7 +4151,7 @@ pub struct InterfaceItemFunctionDeclaration { } /// -/// Type derived for production 862 +/// Type derived for production 863 /// /// `InterfaceItem: ImportDeclaration;` /// @@ -4151,7 +4163,7 @@ pub struct InterfaceItemImportDeclaration { } /// -/// Type derived for production 863 +/// Type derived for production 864 /// /// `InterfaceItem: InitialDeclaration;` /// @@ -4163,7 +4175,7 @@ pub struct InterfaceItemInitialDeclaration { } /// -/// Type derived for production 864 +/// Type derived for production 865 /// /// `InterfaceItem: FinalDeclaration;` /// @@ -4175,7 +4187,7 @@ pub struct InterfaceItemFinalDeclaration { } /// -/// Type derived for production 873 +/// Type derived for production 874 /// /// `PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace;` /// @@ -4189,7 +4201,7 @@ pub struct PackageGroupGroupLBracePackageGroupGroupListRBrace { } /// -/// Type derived for production 876 +/// Type derived for production 877 /// /// `PackageGroupGroup: PackageItem;` /// @@ -4201,7 +4213,7 @@ pub struct PackageGroupGroupPackageItem { } /// -/// Type derived for production 879 +/// Type derived for production 880 /// /// `PackageItem: VarDeclaration;` /// @@ -4213,7 +4225,7 @@ pub struct PackageItemVarDeclaration { } /// -/// Type derived for production 880 +/// Type derived for production 881 /// /// `PackageItem: LocalDeclaration;` /// @@ -4225,7 +4237,7 @@ pub struct PackageItemLocalDeclaration { } /// -/// Type derived for production 881 +/// Type derived for production 882 /// /// `PackageItem: TypeDefDeclaration;` /// @@ -4237,7 +4249,7 @@ pub struct PackageItemTypeDefDeclaration { } /// -/// Type derived for production 882 +/// Type derived for production 883 /// /// `PackageItem: EnumDeclaration;` /// @@ -4249,7 +4261,7 @@ pub struct PackageItemEnumDeclaration { } /// -/// Type derived for production 883 +/// Type derived for production 884 /// /// `PackageItem: StructUnionDeclaration;` /// @@ -4261,7 +4273,7 @@ pub struct PackageItemStructUnionDeclaration { } /// -/// Type derived for production 884 +/// Type derived for production 885 /// /// `PackageItem: FunctionDeclaration;` /// @@ -4273,7 +4285,7 @@ pub struct PackageItemFunctionDeclaration { } /// -/// Type derived for production 885 +/// Type derived for production 886 /// /// `PackageItem: ImportDeclaration;` /// @@ -4285,7 +4297,7 @@ pub struct PackageItemImportDeclaration { } /// -/// Type derived for production 886 +/// Type derived for production 887 /// /// `PackageItem: ExportDeclaration;` /// @@ -4297,7 +4309,7 @@ pub struct PackageItemExportDeclaration { } /// -/// Type derived for production 887 +/// Type derived for production 888 /// /// `PackageItem: InitialDeclaration;` /// @@ -4309,7 +4321,7 @@ pub struct PackageItemInitialDeclaration { } /// -/// Type derived for production 888 +/// Type derived for production 889 /// /// `PackageItem: FinalDeclaration;` /// @@ -4321,7 +4333,7 @@ pub struct PackageItemFinalDeclaration { } /// -/// Type derived for production 894 +/// Type derived for production 895 /// /// `EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm;` /// @@ -4335,7 +4347,7 @@ pub struct EmbedItemLBraceTermEmbedItemListRBraceTerm { } /// -/// Type derived for production 897 +/// Type derived for production 898 /// /// `EmbedItem: AnyTerm;` /// @@ -4347,7 +4359,7 @@ pub struct EmbedItemAnyTerm { } /// -/// Type derived for production 900 +/// Type derived for production 901 /// /// `DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace;` /// @@ -4361,7 +4373,7 @@ pub struct DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace { } /// -/// Type derived for production 903 +/// Type derived for production 904 /// /// `DescriptionGroupGroup: DescriptionItem;` /// @@ -4373,7 +4385,7 @@ pub struct DescriptionGroupGroupDescriptionItem { } /// -/// Type derived for production 906 +/// Type derived for production 907 /// /// `DescriptionItem: ModuleDeclaration;` /// @@ -4385,7 +4397,7 @@ pub struct DescriptionItemModuleDeclaration { } /// -/// Type derived for production 907 +/// Type derived for production 908 /// /// `DescriptionItem: InterfaceDeclaration;` /// @@ -4397,7 +4409,7 @@ pub struct DescriptionItemInterfaceDeclaration { } /// -/// Type derived for production 908 +/// Type derived for production 909 /// /// `DescriptionItem: PackageDeclaration;` /// @@ -4409,7 +4421,7 @@ pub struct DescriptionItemPackageDeclaration { } /// -/// Type derived for production 909 +/// Type derived for production 910 /// /// `DescriptionItem: ImportDeclaration;` /// @@ -4421,7 +4433,7 @@ pub struct DescriptionItemImportDeclaration { } /// -/// Type derived for production 910 +/// Type derived for production 911 /// /// `DescriptionItem: EmbedDeclaration;` /// @@ -4433,7 +4445,7 @@ pub struct DescriptionItemEmbedDeclaration { } /// -/// Type derived for production 911 +/// Type derived for production 912 /// /// `DescriptionItem: IncludeDeclaration;` /// @@ -5715,6 +5727,7 @@ pub enum Direction { Inout(DirectionInout), Ref(DirectionRef), Modport(DirectionModport), + Import(DirectionImport), } /// @@ -29209,6 +29222,25 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { /// Semantic action for production 749: /// + /// `Direction: Import;` + /// + #[parol_runtime::function_name::named] + fn direction_5(&mut self, _import: &ParseTreeType<'t>) -> Result<()> { + let context = function_name!(); + trace!("{}", self.trace_item_stack(context)); + let import = pop_item!(self, import, Import, context); + let direction_5_built = DirectionImport { + import: Box::new(import), + }; + let direction_5_built = Direction::Import(direction_5_built); + // Calling user action here + self.user_grammar.direction(&direction_5_built)?; + self.push(ASTType::Direction(direction_5_built), context); + Ok(()) + } + + /// Semantic action for production 750: + /// /// `FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ LBrace FunctionDeclarationList /* Vec */ RBrace;` /// #[parol_runtime::function_name::named] @@ -29273,7 +29305,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 750: + /// Semantic action for production 751: /// /// `FunctionDeclarationList /* Vec::Push */: FunctionItem FunctionDeclarationList;` /// @@ -29304,7 +29336,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 751: + /// Semantic action for production 752: /// /// `FunctionDeclarationList /* Vec::New */: ;` /// @@ -29320,7 +29352,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 752: + /// Semantic action for production 753: /// /// `FunctionDeclarationOpt1 /* Option::Some */: MinusGT ScalarType;` /// @@ -29345,7 +29377,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 753: + /// Semantic action for production 754: /// /// `FunctionDeclarationOpt1 /* Option::None */: ;` /// @@ -29357,7 +29389,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 754: + /// Semantic action for production 755: /// /// `FunctionDeclarationOpt0 /* Option::Some */: PortDeclaration;` /// @@ -29376,7 +29408,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 755: + /// Semantic action for production 756: /// /// `FunctionDeclarationOpt0 /* Option::None */: ;` /// @@ -29388,7 +29420,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 756: + /// Semantic action for production 757: /// /// `FunctionDeclarationOpt /* Option::Some */: WithGenericParameter;` /// @@ -29411,7 +29443,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 757: + /// Semantic action for production 758: /// /// `FunctionDeclarationOpt /* Option::None */: ;` /// @@ -29423,7 +29455,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 758: + /// Semantic action for production 759: /// /// `FunctionItem: VarDeclaration;` /// @@ -29442,7 +29474,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 759: + /// Semantic action for production 760: /// /// `FunctionItem: Statement;` /// @@ -29461,7 +29493,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 760: + /// Semantic action for production 761: /// /// `ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon;` /// @@ -29496,7 +29528,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 761: + /// Semantic action for production 762: /// /// `ImportDeclarationOpt /* Option::Some */: ColonColon Star;` /// @@ -29521,7 +29553,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 762: + /// Semantic action for production 763: /// /// `ImportDeclarationOpt /* Option::None */: ;` /// @@ -29533,7 +29565,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 763: + /// Semantic action for production 764: /// /// `ExportDeclaration: Export ExportDeclarationGroup Semicolon;` /// @@ -29569,7 +29601,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 764: + /// Semantic action for production 765: /// /// `ExportDeclarationGroup: Star;` /// @@ -29590,7 +29622,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 765: + /// Semantic action for production 766: /// /// `ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */;` /// @@ -29621,7 +29653,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 766: + /// Semantic action for production 767: /// /// `ExportDeclarationOpt /* Option::Some */: ColonColon Star;` /// @@ -29646,7 +29678,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 767: + /// Semantic action for production 768: /// /// `ExportDeclarationOpt /* Option::None */: ;` /// @@ -29658,7 +29690,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 768: + /// Semantic action for production 769: /// /// `ModuleDeclaration: ModuleDeclarationOpt /* Option */ Module Identifier ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace;` /// @@ -29728,7 +29760,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 769: + /// Semantic action for production 770: /// /// `ModuleDeclarationList /* Vec::Push */: ModuleGroup ModuleDeclarationList;` /// @@ -29759,7 +29791,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 770: + /// Semantic action for production 771: /// /// `ModuleDeclarationList /* Vec::New */: ;` /// @@ -29775,7 +29807,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 771: + /// Semantic action for production 772: /// /// `ModuleDeclarationOpt2 /* Option::Some */: PortDeclaration;` /// @@ -29794,7 +29826,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 772: + /// Semantic action for production 773: /// /// `ModuleDeclarationOpt2 /* Option::None */: ;` /// @@ -29806,7 +29838,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 773: + /// Semantic action for production 774: /// /// `ModuleDeclarationOpt1 /* Option::Some */: WithParameter;` /// @@ -29825,7 +29857,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 774: + /// Semantic action for production 775: /// /// `ModuleDeclarationOpt1 /* Option::None */: ;` /// @@ -29837,7 +29869,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 775: + /// Semantic action for production 776: /// /// `ModuleDeclarationOpt0 /* Option::Some */: WithGenericParameter;` /// @@ -29860,7 +29892,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 776: + /// Semantic action for production 777: /// /// `ModuleDeclarationOpt0 /* Option::None */: ;` /// @@ -29872,7 +29904,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 777: + /// Semantic action for production 778: /// /// `ModuleDeclarationOpt /* Option::Some */: Pub;` /// @@ -29891,7 +29923,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 778: + /// Semantic action for production 779: /// /// `ModuleDeclarationOpt /* Option::None */: ;` /// @@ -29903,7 +29935,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 779: + /// Semantic action for production 780: /// /// `ModuleIfDeclaration: If Expression ModuleNamedBlock ModuleIfDeclarationList /* Vec */ ModuleIfDeclarationOpt /* Option */;` /// @@ -29950,7 +29982,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 780: + /// Semantic action for production 781: /// /// `ModuleIfDeclarationList /* Vec::Push */: Else If Expression ModuleOptionalNamedBlock ModuleIfDeclarationList;` /// @@ -29995,7 +30027,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 781: + /// Semantic action for production 782: /// /// `ModuleIfDeclarationList /* Vec::New */: ;` /// @@ -30011,7 +30043,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 782: + /// Semantic action for production 783: /// /// `ModuleIfDeclarationOpt /* Option::Some */: Else ModuleOptionalNamedBlock;` /// @@ -30041,7 +30073,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 783: + /// Semantic action for production 784: /// /// `ModuleIfDeclarationOpt /* Option::None */: ;` /// @@ -30053,7 +30085,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 784: + /// Semantic action for production 785: /// /// `ModuleForDeclaration: For Identifier In Range ModuleForDeclarationOpt /* Option */ ModuleNamedBlock;` /// @@ -30098,7 +30130,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 785: + /// Semantic action for production 786: /// /// `ModuleForDeclarationOpt /* Option::Some */: Step AssignmentOperator Expression;` /// @@ -30126,7 +30158,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 786: + /// Semantic action for production 787: /// /// `ModuleForDeclarationOpt /* Option::None */: ;` /// @@ -30138,7 +30170,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 787: + /// Semantic action for production 788: /// /// `ModuleNamedBlock: Colon Identifier LBrace ModuleNamedBlockList /* Vec */ RBrace;` /// @@ -30173,7 +30205,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 788: + /// Semantic action for production 789: /// /// `ModuleNamedBlockList /* Vec::Push */: ModuleGroup ModuleNamedBlockList;` /// @@ -30200,7 +30232,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 789: + /// Semantic action for production 790: /// /// `ModuleNamedBlockList /* Vec::New */: ;` /// @@ -30216,7 +30248,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 790: + /// Semantic action for production 791: /// /// `ModuleOptionalNamedBlock: ModuleOptionalNamedBlockOpt /* Option */ LBrace ModuleOptionalNamedBlockList /* Vec */ RBrace;` /// @@ -30260,7 +30292,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 791: + /// Semantic action for production 792: /// /// `ModuleOptionalNamedBlockList /* Vec::Push */: ModuleGroup ModuleOptionalNamedBlockList;` /// @@ -30291,7 +30323,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 792: + /// Semantic action for production 793: /// /// `ModuleOptionalNamedBlockList /* Vec::New */: ;` /// @@ -30307,7 +30339,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 793: + /// Semantic action for production 794: /// /// `ModuleOptionalNamedBlockOpt /* Option::Some */: Colon Identifier;` /// @@ -30332,7 +30364,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 794: + /// Semantic action for production 795: /// /// `ModuleOptionalNamedBlockOpt /* Option::None */: ;` /// @@ -30344,7 +30376,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 795: + /// Semantic action for production 796: /// /// `ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup;` /// @@ -30369,7 +30401,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 796: + /// Semantic action for production 797: /// /// `ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace;` /// @@ -30400,7 +30432,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 797: + /// Semantic action for production 798: /// /// `ModuleGroupGroupList /* Vec::Push */: ModuleGroup ModuleGroupGroupList;` /// @@ -30427,7 +30459,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 798: + /// Semantic action for production 799: /// /// `ModuleGroupGroupList /* Vec::New */: ;` /// @@ -30443,7 +30475,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 799: + /// Semantic action for production 800: /// /// `ModuleGroupGroup: ModuleItem;` /// @@ -30463,7 +30495,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 800: + /// Semantic action for production 801: /// /// `ModuleGroupList /* Vec::Push */: Attribute ModuleGroupList;` /// @@ -30486,7 +30518,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 801: + /// Semantic action for production 802: /// /// `ModuleGroupList /* Vec::New */: ;` /// @@ -30499,7 +30531,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 802: + /// Semantic action for production 803: /// /// `ModuleItem: LetDeclaration;` /// @@ -30518,7 +30550,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 803: + /// Semantic action for production 804: /// /// `ModuleItem: VarDeclaration;` /// @@ -30537,7 +30569,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 804: + /// Semantic action for production 805: /// /// `ModuleItem: InstDeclaration;` /// @@ -30556,7 +30588,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 805: + /// Semantic action for production 806: /// /// `ModuleItem: TypeDefDeclaration;` /// @@ -30576,7 +30608,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 806: + /// Semantic action for production 807: /// /// `ModuleItem: LocalDeclaration;` /// @@ -30595,7 +30627,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 807: + /// Semantic action for production 808: /// /// `ModuleItem: AlwaysFfDeclaration;` /// @@ -30615,7 +30647,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 808: + /// Semantic action for production 809: /// /// `ModuleItem: AlwaysCombDeclaration;` /// @@ -30639,7 +30671,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 809: + /// Semantic action for production 810: /// /// `ModuleItem: AssignDeclaration;` /// @@ -30658,7 +30690,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 810: + /// Semantic action for production 811: /// /// `ModuleItem: FunctionDeclaration;` /// @@ -30678,7 +30710,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 811: + /// Semantic action for production 812: /// /// `ModuleItem: ModuleIfDeclaration;` /// @@ -30698,7 +30730,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 812: + /// Semantic action for production 813: /// /// `ModuleItem: ModuleForDeclaration;` /// @@ -30718,7 +30750,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 813: + /// Semantic action for production 814: /// /// `ModuleItem: EnumDeclaration;` /// @@ -30737,7 +30769,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 814: + /// Semantic action for production 815: /// /// `ModuleItem: StructUnionDeclaration;` /// @@ -30761,7 +30793,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 815: + /// Semantic action for production 816: /// /// `ModuleItem: ModuleNamedBlock;` /// @@ -30780,7 +30812,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 816: + /// Semantic action for production 817: /// /// `ModuleItem: ImportDeclaration;` /// @@ -30799,7 +30831,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 817: + /// Semantic action for production 818: /// /// `ModuleItem: InitialDeclaration;` /// @@ -30818,7 +30850,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 818: + /// Semantic action for production 819: /// /// `ModuleItem: FinalDeclaration;` /// @@ -30837,7 +30869,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 819: + /// Semantic action for production 820: /// /// `InterfaceDeclaration: InterfaceDeclarationOpt /* Option */ Interface Identifier InterfaceDeclarationOpt0 /* Option */ InterfaceDeclarationOpt1 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace;` /// @@ -30903,7 +30935,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 820: + /// Semantic action for production 821: /// /// `InterfaceDeclarationList /* Vec::Push */: InterfaceGroup InterfaceDeclarationList;` /// @@ -30934,7 +30966,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 821: + /// Semantic action for production 822: /// /// `InterfaceDeclarationList /* Vec::New */: ;` /// @@ -30950,7 +30982,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 822: + /// Semantic action for production 823: /// /// `InterfaceDeclarationOpt1 /* Option::Some */: WithParameter;` /// @@ -30969,7 +31001,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 823: + /// Semantic action for production 824: /// /// `InterfaceDeclarationOpt1 /* Option::None */: ;` /// @@ -30981,7 +31013,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 824: + /// Semantic action for production 825: /// /// `InterfaceDeclarationOpt0 /* Option::Some */: WithGenericParameter;` /// @@ -31004,7 +31036,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 825: + /// Semantic action for production 826: /// /// `InterfaceDeclarationOpt0 /* Option::None */: ;` /// @@ -31016,7 +31048,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 826: + /// Semantic action for production 827: /// /// `InterfaceDeclarationOpt /* Option::Some */: Pub;` /// @@ -31035,7 +31067,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 827: + /// Semantic action for production 828: /// /// `InterfaceDeclarationOpt /* Option::None */: ;` /// @@ -31047,7 +31079,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 828: + /// Semantic action for production 829: /// /// `InterfaceIfDeclaration: If Expression InterfaceNamedBlock InterfaceIfDeclarationList /* Vec */ InterfaceIfDeclarationOpt /* Option */;` /// @@ -31095,7 +31127,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 829: + /// Semantic action for production 830: /// /// `InterfaceIfDeclarationList /* Vec::Push */: Else If Expression InterfaceOptionalNamedBlock InterfaceIfDeclarationList;` /// @@ -31140,7 +31172,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 830: + /// Semantic action for production 831: /// /// `InterfaceIfDeclarationList /* Vec::New */: ;` /// @@ -31156,7 +31188,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 831: + /// Semantic action for production 832: /// /// `InterfaceIfDeclarationOpt /* Option::Some */: Else InterfaceOptionalNamedBlock;` /// @@ -31186,7 +31218,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 832: + /// Semantic action for production 833: /// /// `InterfaceIfDeclarationOpt /* Option::None */: ;` /// @@ -31198,7 +31230,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 833: + /// Semantic action for production 834: /// /// `InterfaceForDeclaration: For Identifier In Range InterfaceForDeclarationOpt /* Option */ InterfaceNamedBlock;` /// @@ -31244,7 +31276,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 834: + /// Semantic action for production 835: /// /// `InterfaceForDeclarationOpt /* Option::Some */: Step AssignmentOperator Expression;` /// @@ -31272,7 +31304,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 835: + /// Semantic action for production 836: /// /// `InterfaceForDeclarationOpt /* Option::None */: ;` /// @@ -31284,7 +31316,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 836: + /// Semantic action for production 837: /// /// `InterfaceNamedBlock: Colon Identifier LBrace InterfaceNamedBlockList /* Vec */ RBrace;` /// @@ -31326,7 +31358,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 837: + /// Semantic action for production 838: /// /// `InterfaceNamedBlockList /* Vec::Push */: InterfaceGroup InterfaceNamedBlockList;` /// @@ -31357,7 +31389,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 838: + /// Semantic action for production 839: /// /// `InterfaceNamedBlockList /* Vec::New */: ;` /// @@ -31373,7 +31405,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 839: + /// Semantic action for production 840: /// /// `InterfaceOptionalNamedBlock: InterfaceOptionalNamedBlockOpt /* Option */ LBrace InterfaceOptionalNamedBlockList /* Vec */ RBrace;` /// @@ -31417,7 +31449,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 840: + /// Semantic action for production 841: /// /// `InterfaceOptionalNamedBlockList /* Vec::Push */: InterfaceGroup InterfaceOptionalNamedBlockList;` /// @@ -31448,7 +31480,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 841: + /// Semantic action for production 842: /// /// `InterfaceOptionalNamedBlockList /* Vec::New */: ;` /// @@ -31464,7 +31496,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 842: + /// Semantic action for production 843: /// /// `InterfaceOptionalNamedBlockOpt /* Option::Some */: Colon Identifier;` /// @@ -31491,7 +31523,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 843: + /// Semantic action for production 844: /// /// `InterfaceOptionalNamedBlockOpt /* Option::None */: ;` /// @@ -31503,7 +31535,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 844: + /// Semantic action for production 845: /// /// `InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup;` /// @@ -31529,7 +31561,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 845: + /// Semantic action for production 846: /// /// `InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace;` /// @@ -31565,7 +31597,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 846: + /// Semantic action for production 847: /// /// `InterfaceGroupGroupList /* Vec::Push */: InterfaceGroup InterfaceGroupGroupList;` /// @@ -31596,7 +31628,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 847: + /// Semantic action for production 848: /// /// `InterfaceGroupGroupList /* Vec::New */: ;` /// @@ -31612,7 +31644,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 848: + /// Semantic action for production 849: /// /// `InterfaceGroupGroup: InterfaceItem;` /// @@ -31633,7 +31665,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 849: + /// Semantic action for production 850: /// /// `InterfaceGroupList /* Vec::Push */: Attribute InterfaceGroupList;` /// @@ -31657,7 +31689,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 850: + /// Semantic action for production 851: /// /// `InterfaceGroupList /* Vec::New */: ;` /// @@ -31673,7 +31705,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 851: + /// Semantic action for production 852: /// /// `InterfaceItem: LetDeclaration;` /// @@ -31692,7 +31724,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 852: + /// Semantic action for production 853: /// /// `InterfaceItem: VarDeclaration;` /// @@ -31711,7 +31743,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 853: + /// Semantic action for production 854: /// /// `InterfaceItem: LocalDeclaration;` /// @@ -31730,7 +31762,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 854: + /// Semantic action for production 855: /// /// `InterfaceItem: ModportDeclaration;` /// @@ -31749,7 +31781,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 855: + /// Semantic action for production 856: /// /// `InterfaceItem: InterfaceIfDeclaration;` /// @@ -31773,7 +31805,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 856: + /// Semantic action for production 857: /// /// `InterfaceItem: InterfaceForDeclaration;` /// @@ -31797,7 +31829,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 857: + /// Semantic action for production 858: /// /// `InterfaceItem: TypeDefDeclaration;` /// @@ -31817,7 +31849,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 858: + /// Semantic action for production 859: /// /// `InterfaceItem: EnumDeclaration;` /// @@ -31836,7 +31868,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 859: + /// Semantic action for production 860: /// /// `InterfaceItem: StructUnionDeclaration;` /// @@ -31860,7 +31892,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 860: + /// Semantic action for production 861: /// /// `InterfaceItem: InterfaceNamedBlock;` /// @@ -31880,7 +31912,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 861: + /// Semantic action for production 862: /// /// `InterfaceItem: FunctionDeclaration;` /// @@ -31900,7 +31932,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 862: + /// Semantic action for production 863: /// /// `InterfaceItem: ImportDeclaration;` /// @@ -31919,7 +31951,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 863: + /// Semantic action for production 864: /// /// `InterfaceItem: InitialDeclaration;` /// @@ -31938,7 +31970,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 864: + /// Semantic action for production 865: /// /// `InterfaceItem: FinalDeclaration;` /// @@ -31957,7 +31989,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 865: + /// Semantic action for production 866: /// /// `PackageDeclaration: PackageDeclarationOpt /* Option */ Package Identifier PackageDeclarationOpt0 /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace;` /// @@ -32015,7 +32047,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 866: + /// Semantic action for production 867: /// /// `PackageDeclarationList /* Vec::Push */: PackageGroup PackageDeclarationList;` /// @@ -32046,7 +32078,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 867: + /// Semantic action for production 868: /// /// `PackageDeclarationList /* Vec::New */: ;` /// @@ -32062,7 +32094,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 868: + /// Semantic action for production 869: /// /// `PackageDeclarationOpt0 /* Option::Some */: WithGenericParameter;` /// @@ -32085,7 +32117,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 869: + /// Semantic action for production 870: /// /// `PackageDeclarationOpt0 /* Option::None */: ;` /// @@ -32097,7 +32129,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 870: + /// Semantic action for production 871: /// /// `PackageDeclarationOpt /* Option::Some */: Pub;` /// @@ -32116,7 +32148,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 871: + /// Semantic action for production 872: /// /// `PackageDeclarationOpt /* Option::None */: ;` /// @@ -32128,7 +32160,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 872: + /// Semantic action for production 873: /// /// `PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup;` /// @@ -32153,7 +32185,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 873: + /// Semantic action for production 874: /// /// `PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace;` /// @@ -32188,7 +32220,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 874: + /// Semantic action for production 875: /// /// `PackageGroupGroupList /* Vec::Push */: PackageGroup PackageGroupGroupList;` /// @@ -32219,7 +32251,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 875: + /// Semantic action for production 876: /// /// `PackageGroupGroupList /* Vec::New */: ;` /// @@ -32235,7 +32267,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 876: + /// Semantic action for production 877: /// /// `PackageGroupGroup: PackageItem;` /// @@ -32256,7 +32288,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 877: + /// Semantic action for production 878: /// /// `PackageGroupList /* Vec::Push */: Attribute PackageGroupList;` /// @@ -32279,7 +32311,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 878: + /// Semantic action for production 879: /// /// `PackageGroupList /* Vec::New */: ;` /// @@ -32295,7 +32327,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 879: + /// Semantic action for production 880: /// /// `PackageItem: VarDeclaration;` /// @@ -32314,7 +32346,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 880: + /// Semantic action for production 881: /// /// `PackageItem: LocalDeclaration;` /// @@ -32333,7 +32365,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 881: + /// Semantic action for production 882: /// /// `PackageItem: TypeDefDeclaration;` /// @@ -32353,7 +32385,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 882: + /// Semantic action for production 883: /// /// `PackageItem: EnumDeclaration;` /// @@ -32372,7 +32404,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 883: + /// Semantic action for production 884: /// /// `PackageItem: StructUnionDeclaration;` /// @@ -32396,7 +32428,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 884: + /// Semantic action for production 885: /// /// `PackageItem: FunctionDeclaration;` /// @@ -32416,7 +32448,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 885: + /// Semantic action for production 886: /// /// `PackageItem: ImportDeclaration;` /// @@ -32435,7 +32467,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 886: + /// Semantic action for production 887: /// /// `PackageItem: ExportDeclaration;` /// @@ -32454,7 +32486,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 887: + /// Semantic action for production 888: /// /// `PackageItem: InitialDeclaration;` /// @@ -32473,7 +32505,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 888: + /// Semantic action for production 889: /// /// `PackageItem: FinalDeclaration;` /// @@ -32492,7 +32524,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 889: + /// Semantic action for production 890: /// /// `EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent;` /// @@ -32529,7 +32561,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 890: + /// Semantic action for production 891: /// /// `EmbedContent: EmbedContentToken : VerylToken;` /// @@ -32549,7 +32581,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 891: + /// Semantic action for production 892: /// /// `EmbedContentToken: LBraceTerm %push(Embed) LBraceTerm LBraceTerm EmbedContentTokenList /* Vec */ RBraceTerm RBraceTerm RBraceTerm %pop() Comments;` /// @@ -32600,7 +32632,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 892: + /// Semantic action for production 893: /// /// `EmbedContentTokenList /* Vec::Push */: EmbedItem EmbedContentTokenList;` /// @@ -32631,7 +32663,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 893: + /// Semantic action for production 894: /// /// `EmbedContentTokenList /* Vec::New */: ;` /// @@ -32647,7 +32679,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 894: + /// Semantic action for production 895: /// /// `EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm;` /// @@ -32675,7 +32707,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 895: + /// Semantic action for production 896: /// /// `EmbedItemList /* Vec::Push */: EmbedItem EmbedItemList;` /// @@ -32698,7 +32730,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 896: + /// Semantic action for production 897: /// /// `EmbedItemList /* Vec::New */: ;` /// @@ -32711,7 +32743,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 897: + /// Semantic action for production 898: /// /// `EmbedItem: AnyTerm;` /// @@ -32730,7 +32762,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 898: + /// Semantic action for production 899: /// /// `IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon;` /// @@ -32773,7 +32805,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 899: + /// Semantic action for production 900: /// /// `DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup;` /// @@ -32804,7 +32836,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 900: + /// Semantic action for production 901: /// /// `DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace;` /// @@ -32842,7 +32874,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 901: + /// Semantic action for production 902: /// /// `DescriptionGroupGroupList /* Vec::Push */: DescriptionGroup DescriptionGroupGroupList;` /// @@ -32873,7 +32905,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 902: + /// Semantic action for production 903: /// /// `DescriptionGroupGroupList /* Vec::New */: ;` /// @@ -32889,7 +32921,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 903: + /// Semantic action for production 904: /// /// `DescriptionGroupGroup: DescriptionItem;` /// @@ -32910,7 +32942,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 904: + /// Semantic action for production 905: /// /// `DescriptionGroupList /* Vec::Push */: Attribute DescriptionGroupList;` /// @@ -32937,7 +32969,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 905: + /// Semantic action for production 906: /// /// `DescriptionGroupList /* Vec::New */: ;` /// @@ -32953,7 +32985,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 906: + /// Semantic action for production 907: /// /// `DescriptionItem: ModuleDeclaration;` /// @@ -32973,7 +33005,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 907: + /// Semantic action for production 908: /// /// `DescriptionItem: InterfaceDeclaration;` /// @@ -32995,7 +33027,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 908: + /// Semantic action for production 909: /// /// `DescriptionItem: PackageDeclaration;` /// @@ -33016,7 +33048,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 909: + /// Semantic action for production 910: /// /// `DescriptionItem: ImportDeclaration;` /// @@ -33036,7 +33068,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 910: + /// Semantic action for production 911: /// /// `DescriptionItem: EmbedDeclaration;` /// @@ -33056,7 +33088,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 911: + /// Semantic action for production 912: /// /// `DescriptionItem: IncludeDeclaration;` /// @@ -33077,7 +33109,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 912: + /// Semantic action for production 913: /// /// `Veryl: Start VerylList /* Vec */;` /// @@ -33097,7 +33129,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 913: + /// Semantic action for production 914: /// /// `VerylList /* Vec::Push */: DescriptionGroup VerylList;` /// @@ -33120,7 +33152,7 @@ impl<'t, 'u> VerylGrammarAuto<'t, 'u> { Ok(()) } - /// Semantic action for production 914: + /// Semantic action for production 915: /// /// `VerylList /* Vec::New */: ;` /// @@ -34102,7 +34134,8 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { 746 => self.direction_2(&children[0]), 747 => self.direction_3(&children[0]), 748 => self.direction_4(&children[0]), - 749 => self.function_declaration( + 749 => self.direction_5(&children[0]), + 750 => self.function_declaration( &children[0], &children[1], &children[2], @@ -34112,25 +34145,25 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[6], &children[7], ), - 750 => self.function_declaration_list_0(&children[0], &children[1]), - 751 => self.function_declaration_list_1(), - 752 => self.function_declaration_opt1_0(&children[0], &children[1]), - 753 => self.function_declaration_opt1_1(), - 754 => self.function_declaration_opt0_0(&children[0]), - 755 => self.function_declaration_opt0_1(), - 756 => self.function_declaration_opt_0(&children[0]), - 757 => self.function_declaration_opt_1(), - 758 => self.function_item_0(&children[0]), - 759 => self.function_item_1(&children[0]), - 760 => self.import_declaration(&children[0], &children[1], &children[2], &children[3]), - 761 => self.import_declaration_opt_0(&children[0], &children[1]), - 762 => self.import_declaration_opt_1(), - 763 => self.export_declaration(&children[0], &children[1], &children[2]), - 764 => self.export_declaration_group_0(&children[0]), - 765 => self.export_declaration_group_1(&children[0], &children[1]), - 766 => self.export_declaration_opt_0(&children[0], &children[1]), - 767 => self.export_declaration_opt_1(), - 768 => self.module_declaration( + 751 => self.function_declaration_list_0(&children[0], &children[1]), + 752 => self.function_declaration_list_1(), + 753 => self.function_declaration_opt1_0(&children[0], &children[1]), + 754 => self.function_declaration_opt1_1(), + 755 => self.function_declaration_opt0_0(&children[0]), + 756 => self.function_declaration_opt0_1(), + 757 => self.function_declaration_opt_0(&children[0]), + 758 => self.function_declaration_opt_1(), + 759 => self.function_item_0(&children[0]), + 760 => self.function_item_1(&children[0]), + 761 => self.import_declaration(&children[0], &children[1], &children[2], &children[3]), + 762 => self.import_declaration_opt_0(&children[0], &children[1]), + 763 => self.import_declaration_opt_1(), + 764 => self.export_declaration(&children[0], &children[1], &children[2]), + 765 => self.export_declaration_group_0(&children[0]), + 766 => self.export_declaration_group_1(&children[0], &children[1]), + 767 => self.export_declaration_opt_0(&children[0], &children[1]), + 768 => self.export_declaration_opt_1(), + 769 => self.module_declaration( &children[0], &children[1], &children[2], @@ -34141,34 +34174,34 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[7], &children[8], ), - 769 => self.module_declaration_list_0(&children[0], &children[1]), - 770 => self.module_declaration_list_1(), - 771 => self.module_declaration_opt2_0(&children[0]), - 772 => self.module_declaration_opt2_1(), - 773 => self.module_declaration_opt1_0(&children[0]), - 774 => self.module_declaration_opt1_1(), - 775 => self.module_declaration_opt0_0(&children[0]), - 776 => self.module_declaration_opt0_1(), - 777 => self.module_declaration_opt_0(&children[0]), - 778 => self.module_declaration_opt_1(), - 779 => self.module_if_declaration( + 770 => self.module_declaration_list_0(&children[0], &children[1]), + 771 => self.module_declaration_list_1(), + 772 => self.module_declaration_opt2_0(&children[0]), + 773 => self.module_declaration_opt2_1(), + 774 => self.module_declaration_opt1_0(&children[0]), + 775 => self.module_declaration_opt1_1(), + 776 => self.module_declaration_opt0_0(&children[0]), + 777 => self.module_declaration_opt0_1(), + 778 => self.module_declaration_opt_0(&children[0]), + 779 => self.module_declaration_opt_1(), + 780 => self.module_if_declaration( &children[0], &children[1], &children[2], &children[3], &children[4], ), - 780 => self.module_if_declaration_list_0( + 781 => self.module_if_declaration_list_0( &children[0], &children[1], &children[2], &children[3], &children[4], ), - 781 => self.module_if_declaration_list_1(), - 782 => self.module_if_declaration_opt_0(&children[0], &children[1]), - 783 => self.module_if_declaration_opt_1(), - 784 => self.module_for_declaration( + 782 => self.module_if_declaration_list_1(), + 783 => self.module_if_declaration_opt_0(&children[0], &children[1]), + 784 => self.module_if_declaration_opt_1(), + 785 => self.module_for_declaration( &children[0], &children[1], &children[2], @@ -34176,52 +34209,52 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[4], &children[5], ), - 785 => self.module_for_declaration_opt_0(&children[0], &children[1], &children[2]), - 786 => self.module_for_declaration_opt_1(), - 787 => self.module_named_block( + 786 => self.module_for_declaration_opt_0(&children[0], &children[1], &children[2]), + 787 => self.module_for_declaration_opt_1(), + 788 => self.module_named_block( &children[0], &children[1], &children[2], &children[3], &children[4], ), - 788 => self.module_named_block_list_0(&children[0], &children[1]), - 789 => self.module_named_block_list_1(), - 790 => self.module_optional_named_block( + 789 => self.module_named_block_list_0(&children[0], &children[1]), + 790 => self.module_named_block_list_1(), + 791 => self.module_optional_named_block( &children[0], &children[1], &children[2], &children[3], ), - 791 => self.module_optional_named_block_list_0(&children[0], &children[1]), - 792 => self.module_optional_named_block_list_1(), - 793 => self.module_optional_named_block_opt_0(&children[0], &children[1]), - 794 => self.module_optional_named_block_opt_1(), - 795 => self.module_group(&children[0], &children[1]), - 796 => self.module_group_group_0(&children[0], &children[1], &children[2]), - 797 => self.module_group_group_list_0(&children[0], &children[1]), - 798 => self.module_group_group_list_1(), - 799 => self.module_group_group_1(&children[0]), - 800 => self.module_group_list_0(&children[0], &children[1]), - 801 => self.module_group_list_1(), - 802 => self.module_item_0(&children[0]), - 803 => self.module_item_1(&children[0]), - 804 => self.module_item_2(&children[0]), - 805 => self.module_item_3(&children[0]), - 806 => self.module_item_4(&children[0]), - 807 => self.module_item_5(&children[0]), - 808 => self.module_item_6(&children[0]), - 809 => self.module_item_7(&children[0]), - 810 => self.module_item_8(&children[0]), - 811 => self.module_item_9(&children[0]), - 812 => self.module_item_10(&children[0]), - 813 => self.module_item_11(&children[0]), - 814 => self.module_item_12(&children[0]), - 815 => self.module_item_13(&children[0]), - 816 => self.module_item_14(&children[0]), - 817 => self.module_item_15(&children[0]), - 818 => self.module_item_16(&children[0]), - 819 => self.interface_declaration( + 792 => self.module_optional_named_block_list_0(&children[0], &children[1]), + 793 => self.module_optional_named_block_list_1(), + 794 => self.module_optional_named_block_opt_0(&children[0], &children[1]), + 795 => self.module_optional_named_block_opt_1(), + 796 => self.module_group(&children[0], &children[1]), + 797 => self.module_group_group_0(&children[0], &children[1], &children[2]), + 798 => self.module_group_group_list_0(&children[0], &children[1]), + 799 => self.module_group_group_list_1(), + 800 => self.module_group_group_1(&children[0]), + 801 => self.module_group_list_0(&children[0], &children[1]), + 802 => self.module_group_list_1(), + 803 => self.module_item_0(&children[0]), + 804 => self.module_item_1(&children[0]), + 805 => self.module_item_2(&children[0]), + 806 => self.module_item_3(&children[0]), + 807 => self.module_item_4(&children[0]), + 808 => self.module_item_5(&children[0]), + 809 => self.module_item_6(&children[0]), + 810 => self.module_item_7(&children[0]), + 811 => self.module_item_8(&children[0]), + 812 => self.module_item_9(&children[0]), + 813 => self.module_item_10(&children[0]), + 814 => self.module_item_11(&children[0]), + 815 => self.module_item_12(&children[0]), + 816 => self.module_item_13(&children[0]), + 817 => self.module_item_14(&children[0]), + 818 => self.module_item_15(&children[0]), + 819 => self.module_item_16(&children[0]), + 820 => self.interface_declaration( &children[0], &children[1], &children[2], @@ -34231,32 +34264,32 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[6], &children[7], ), - 820 => self.interface_declaration_list_0(&children[0], &children[1]), - 821 => self.interface_declaration_list_1(), - 822 => self.interface_declaration_opt1_0(&children[0]), - 823 => self.interface_declaration_opt1_1(), - 824 => self.interface_declaration_opt0_0(&children[0]), - 825 => self.interface_declaration_opt0_1(), - 826 => self.interface_declaration_opt_0(&children[0]), - 827 => self.interface_declaration_opt_1(), - 828 => self.interface_if_declaration( + 821 => self.interface_declaration_list_0(&children[0], &children[1]), + 822 => self.interface_declaration_list_1(), + 823 => self.interface_declaration_opt1_0(&children[0]), + 824 => self.interface_declaration_opt1_1(), + 825 => self.interface_declaration_opt0_0(&children[0]), + 826 => self.interface_declaration_opt0_1(), + 827 => self.interface_declaration_opt_0(&children[0]), + 828 => self.interface_declaration_opt_1(), + 829 => self.interface_if_declaration( &children[0], &children[1], &children[2], &children[3], &children[4], ), - 829 => self.interface_if_declaration_list_0( + 830 => self.interface_if_declaration_list_0( &children[0], &children[1], &children[2], &children[3], &children[4], ), - 830 => self.interface_if_declaration_list_1(), - 831 => self.interface_if_declaration_opt_0(&children[0], &children[1]), - 832 => self.interface_if_declaration_opt_1(), - 833 => self.interface_for_declaration( + 831 => self.interface_if_declaration_list_1(), + 832 => self.interface_if_declaration_opt_0(&children[0], &children[1]), + 833 => self.interface_if_declaration_opt_1(), + 834 => self.interface_for_declaration( &children[0], &children[1], &children[2], @@ -34264,49 +34297,49 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[4], &children[5], ), - 834 => self.interface_for_declaration_opt_0(&children[0], &children[1], &children[2]), - 835 => self.interface_for_declaration_opt_1(), - 836 => self.interface_named_block( + 835 => self.interface_for_declaration_opt_0(&children[0], &children[1], &children[2]), + 836 => self.interface_for_declaration_opt_1(), + 837 => self.interface_named_block( &children[0], &children[1], &children[2], &children[3], &children[4], ), - 837 => self.interface_named_block_list_0(&children[0], &children[1]), - 838 => self.interface_named_block_list_1(), - 839 => self.interface_optional_named_block( + 838 => self.interface_named_block_list_0(&children[0], &children[1]), + 839 => self.interface_named_block_list_1(), + 840 => self.interface_optional_named_block( &children[0], &children[1], &children[2], &children[3], ), - 840 => self.interface_optional_named_block_list_0(&children[0], &children[1]), - 841 => self.interface_optional_named_block_list_1(), - 842 => self.interface_optional_named_block_opt_0(&children[0], &children[1]), - 843 => self.interface_optional_named_block_opt_1(), - 844 => self.interface_group(&children[0], &children[1]), - 845 => self.interface_group_group_0(&children[0], &children[1], &children[2]), - 846 => self.interface_group_group_list_0(&children[0], &children[1]), - 847 => self.interface_group_group_list_1(), - 848 => self.interface_group_group_1(&children[0]), - 849 => self.interface_group_list_0(&children[0], &children[1]), - 850 => self.interface_group_list_1(), - 851 => self.interface_item_0(&children[0]), - 852 => self.interface_item_1(&children[0]), - 853 => self.interface_item_2(&children[0]), - 854 => self.interface_item_3(&children[0]), - 855 => self.interface_item_4(&children[0]), - 856 => self.interface_item_5(&children[0]), - 857 => self.interface_item_6(&children[0]), - 858 => self.interface_item_7(&children[0]), - 859 => self.interface_item_8(&children[0]), - 860 => self.interface_item_9(&children[0]), - 861 => self.interface_item_10(&children[0]), - 862 => self.interface_item_11(&children[0]), - 863 => self.interface_item_12(&children[0]), - 864 => self.interface_item_13(&children[0]), - 865 => self.package_declaration( + 841 => self.interface_optional_named_block_list_0(&children[0], &children[1]), + 842 => self.interface_optional_named_block_list_1(), + 843 => self.interface_optional_named_block_opt_0(&children[0], &children[1]), + 844 => self.interface_optional_named_block_opt_1(), + 845 => self.interface_group(&children[0], &children[1]), + 846 => self.interface_group_group_0(&children[0], &children[1], &children[2]), + 847 => self.interface_group_group_list_0(&children[0], &children[1]), + 848 => self.interface_group_group_list_1(), + 849 => self.interface_group_group_1(&children[0]), + 850 => self.interface_group_list_0(&children[0], &children[1]), + 851 => self.interface_group_list_1(), + 852 => self.interface_item_0(&children[0]), + 853 => self.interface_item_1(&children[0]), + 854 => self.interface_item_2(&children[0]), + 855 => self.interface_item_3(&children[0]), + 856 => self.interface_item_4(&children[0]), + 857 => self.interface_item_5(&children[0]), + 858 => self.interface_item_6(&children[0]), + 859 => self.interface_item_7(&children[0]), + 860 => self.interface_item_8(&children[0]), + 861 => self.interface_item_9(&children[0]), + 862 => self.interface_item_10(&children[0]), + 863 => self.interface_item_11(&children[0]), + 864 => self.interface_item_12(&children[0]), + 865 => self.interface_item_13(&children[0]), + 866 => self.package_declaration( &children[0], &children[1], &children[2], @@ -34315,30 +34348,30 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[5], &children[6], ), - 866 => self.package_declaration_list_0(&children[0], &children[1]), - 867 => self.package_declaration_list_1(), - 868 => self.package_declaration_opt0_0(&children[0]), - 869 => self.package_declaration_opt0_1(), - 870 => self.package_declaration_opt_0(&children[0]), - 871 => self.package_declaration_opt_1(), - 872 => self.package_group(&children[0], &children[1]), - 873 => self.package_group_group_0(&children[0], &children[1], &children[2]), - 874 => self.package_group_group_list_0(&children[0], &children[1]), - 875 => self.package_group_group_list_1(), - 876 => self.package_group_group_1(&children[0]), - 877 => self.package_group_list_0(&children[0], &children[1]), - 878 => self.package_group_list_1(), - 879 => self.package_item_0(&children[0]), - 880 => self.package_item_1(&children[0]), - 881 => self.package_item_2(&children[0]), - 882 => self.package_item_3(&children[0]), - 883 => self.package_item_4(&children[0]), - 884 => self.package_item_5(&children[0]), - 885 => self.package_item_6(&children[0]), - 886 => self.package_item_7(&children[0]), - 887 => self.package_item_8(&children[0]), - 888 => self.package_item_9(&children[0]), - 889 => self.embed_declaration( + 867 => self.package_declaration_list_0(&children[0], &children[1]), + 868 => self.package_declaration_list_1(), + 869 => self.package_declaration_opt0_0(&children[0]), + 870 => self.package_declaration_opt0_1(), + 871 => self.package_declaration_opt_0(&children[0]), + 872 => self.package_declaration_opt_1(), + 873 => self.package_group(&children[0], &children[1]), + 874 => self.package_group_group_0(&children[0], &children[1], &children[2]), + 875 => self.package_group_group_list_0(&children[0], &children[1]), + 876 => self.package_group_group_list_1(), + 877 => self.package_group_group_1(&children[0]), + 878 => self.package_group_list_0(&children[0], &children[1]), + 879 => self.package_group_list_1(), + 880 => self.package_item_0(&children[0]), + 881 => self.package_item_1(&children[0]), + 882 => self.package_item_2(&children[0]), + 883 => self.package_item_3(&children[0]), + 884 => self.package_item_4(&children[0]), + 885 => self.package_item_5(&children[0]), + 886 => self.package_item_6(&children[0]), + 887 => self.package_item_7(&children[0]), + 888 => self.package_item_8(&children[0]), + 889 => self.package_item_9(&children[0]), + 890 => self.embed_declaration( &children[0], &children[1], &children[2], @@ -34346,8 +34379,8 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[4], &children[5], ), - 890 => self.embed_content(&children[0]), - 891 => self.embed_content_token( + 891 => self.embed_content(&children[0]), + 892 => self.embed_content_token( &children[0], &children[1], &children[2], @@ -34357,13 +34390,13 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[6], &children[7], ), - 892 => self.embed_content_token_list_0(&children[0], &children[1]), - 893 => self.embed_content_token_list_1(), - 894 => self.embed_item_0(&children[0], &children[1], &children[2]), - 895 => self.embed_item_list_0(&children[0], &children[1]), - 896 => self.embed_item_list_1(), - 897 => self.embed_item_1(&children[0]), - 898 => self.include_declaration( + 893 => self.embed_content_token_list_0(&children[0], &children[1]), + 894 => self.embed_content_token_list_1(), + 895 => self.embed_item_0(&children[0], &children[1], &children[2]), + 896 => self.embed_item_list_0(&children[0], &children[1]), + 897 => self.embed_item_list_1(), + 898 => self.embed_item_1(&children[0]), + 899 => self.include_declaration( &children[0], &children[1], &children[2], @@ -34372,22 +34405,22 @@ impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> { &children[5], &children[6], ), - 899 => self.description_group(&children[0], &children[1]), - 900 => self.description_group_group_0(&children[0], &children[1], &children[2]), - 901 => self.description_group_group_list_0(&children[0], &children[1]), - 902 => self.description_group_group_list_1(), - 903 => self.description_group_group_1(&children[0]), - 904 => self.description_group_list_0(&children[0], &children[1]), - 905 => self.description_group_list_1(), - 906 => self.description_item_0(&children[0]), - 907 => self.description_item_1(&children[0]), - 908 => self.description_item_2(&children[0]), - 909 => self.description_item_3(&children[0]), - 910 => self.description_item_4(&children[0]), - 911 => self.description_item_5(&children[0]), - 912 => self.veryl(&children[0], &children[1]), - 913 => self.veryl_list_0(&children[0], &children[1]), - 914 => self.veryl_list_1(), + 900 => self.description_group(&children[0], &children[1]), + 901 => self.description_group_group_0(&children[0], &children[1], &children[2]), + 902 => self.description_group_group_list_0(&children[0], &children[1]), + 903 => self.description_group_group_list_1(), + 904 => self.description_group_group_1(&children[0]), + 905 => self.description_group_list_0(&children[0], &children[1]), + 906 => self.description_group_list_1(), + 907 => self.description_item_0(&children[0]), + 908 => self.description_item_1(&children[0]), + 909 => self.description_item_2(&children[0]), + 910 => self.description_item_3(&children[0]), + 911 => self.description_item_4(&children[0]), + 912 => self.description_item_5(&children[0]), + 913 => self.veryl(&children[0], &children[1]), + 914 => self.veryl_list_0(&children[0], &children[1]), + 915 => self.veryl_list_1(), _ => Err(ParserError::InternalError(format!( "Unhandled production number: {}", prod_num diff --git a/crates/parser/src/generated/veryl_parser.rs b/crates/parser/src/generated/veryl_parser.rs index 09eecebf..d439a7f7 100644 --- a/crates/parser/src/generated/veryl_parser.rs +++ b/crates/parser/src/generated/veryl_parser.rs @@ -3816,7 +3816,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 111 - "DescriptionGroup" */ LookaheadDFA { - prod0: 899, + prod0: 900, transitions: &[], k: 0, }, @@ -3824,14 +3824,14 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 39, 1, 900), - Trans(0, 59, 2, 903), - Trans(0, 71, 2, 903), - Trans(0, 72, 2, 903), - Trans(0, 78, 2, 903), - Trans(0, 85, 2, 903), - Trans(0, 89, 2, 903), - Trans(0, 91, 2, 903), + Trans(0, 39, 1, 901), + Trans(0, 59, 2, 904), + Trans(0, 71, 2, 904), + Trans(0, 72, 2, 904), + Trans(0, 78, 2, 904), + Trans(0, 85, 2, 904), + Trans(0, 89, 2, 904), + Trans(0, 91, 2, 904), ], k: 1, }, @@ -3839,16 +3839,16 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 36, 1, 901), - Trans(0, 39, 1, 901), - Trans(0, 43, 2, 902), - Trans(0, 59, 1, 901), - Trans(0, 71, 1, 901), - Trans(0, 72, 1, 901), - Trans(0, 78, 1, 901), - Trans(0, 85, 1, 901), - Trans(0, 89, 1, 901), - Trans(0, 91, 1, 901), + Trans(0, 36, 1, 902), + Trans(0, 39, 1, 902), + Trans(0, 43, 2, 903), + Trans(0, 59, 1, 902), + Trans(0, 71, 1, 902), + Trans(0, 72, 1, 902), + Trans(0, 78, 1, 902), + Trans(0, 85, 1, 902), + Trans(0, 89, 1, 902), + Trans(0, 91, 1, 902), ], k: 1, }, @@ -3856,15 +3856,15 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 36, 1, 904), - Trans(0, 39, 2, 905), - Trans(0, 59, 2, 905), - Trans(0, 71, 2, 905), - Trans(0, 72, 2, 905), - Trans(0, 78, 2, 905), - Trans(0, 85, 2, 905), - Trans(0, 89, 2, 905), - Trans(0, 91, 2, 905), + Trans(0, 36, 1, 905), + Trans(0, 39, 2, 906), + Trans(0, 59, 2, 906), + Trans(0, 71, 2, 906), + Trans(0, 72, 2, 906), + Trans(0, 78, 2, 906), + Trans(0, 85, 2, 906), + Trans(0, 89, 2, 906), + Trans(0, 91, 2, 906), ], k: 1, }, @@ -3883,58 +3883,58 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(1, 78, 9, -1), Trans(1, 85, 2, -1), Trans(1, 89, 14, -1), - Trans(2, 5, 3, 906), - Trans(2, 112, 3, 906), + Trans(2, 5, 3, 907), + Trans(2, 112, 3, 907), Trans(4, 5, 7, -1), Trans(4, 112, 5, -1), - Trans(5, 5, 3, 906), - Trans(5, 28, 3, 906), - Trans(5, 36, 3, 906), - Trans(5, 39, 3, 906), - Trans(5, 41, 3, 906), - Trans(6, 78, 10, 907), - Trans(6, 85, 3, 906), - Trans(6, 89, 15, 908), - Trans(7, 112, 3, 906), + Trans(5, 5, 3, 907), + Trans(5, 28, 3, 907), + Trans(5, 36, 3, 907), + Trans(5, 39, 3, 907), + Trans(5, 41, 3, 907), + Trans(6, 78, 10, 908), + Trans(6, 85, 3, 907), + Trans(6, 89, 15, 909), + Trans(7, 112, 3, 907), Trans(8, 5, 11, -1), Trans(8, 112, 12, -1), - Trans(9, 5, 10, 907), - Trans(9, 112, 10, 907), - Trans(11, 112, 10, 907), - Trans(12, 5, 10, 907), - Trans(12, 28, 10, 907), - Trans(12, 36, 10, 907), - Trans(12, 39, 10, 907), + Trans(9, 5, 10, 908), + Trans(9, 112, 10, 908), + Trans(11, 112, 10, 908), + Trans(12, 5, 10, 908), + Trans(12, 28, 10, 908), + Trans(12, 36, 10, 908), + Trans(12, 39, 10, 908), Trans(13, 5, 16, -1), Trans(13, 112, 17, -1), - Trans(14, 5, 15, 908), - Trans(14, 112, 15, 908), - Trans(16, 112, 15, 908), - Trans(17, 5, 15, 908), - Trans(17, 28, 15, 908), - Trans(17, 39, 15, 908), + Trans(14, 5, 15, 909), + Trans(14, 112, 15, 909), + Trans(16, 112, 15, 909), + Trans(17, 5, 15, 909), + Trans(17, 28, 15, 909), + Trans(17, 39, 15, 909), Trans(18, 5, 19, -1), Trans(18, 111, 20, -1), Trans(18, 112, 21, -1), - Trans(19, 111, 22, 909), - Trans(19, 112, 22, 909), - Trans(20, 5, 22, 909), - Trans(20, 29, 22, 909), - Trans(20, 46, 22, 909), - Trans(21, 5, 22, 909), - Trans(21, 28, 22, 909), - Trans(21, 29, 22, 909), - Trans(21, 46, 22, 909), + Trans(19, 111, 22, 910), + Trans(19, 112, 22, 910), + Trans(20, 5, 22, 910), + Trans(20, 29, 22, 910), + Trans(20, 46, 22, 910), + Trans(21, 5, 22, 910), + Trans(21, 28, 22, 910), + Trans(21, 29, 22, 910), + Trans(21, 46, 22, 910), Trans(23, 5, 24, -1), Trans(23, 41, 25, -1), - Trans(24, 41, 26, 910), - Trans(25, 5, 26, 910), - Trans(25, 112, 26, 910), + Trans(24, 41, 26, 911), + Trans(25, 5, 26, 911), + Trans(25, 112, 26, 911), Trans(27, 5, 28, -1), Trans(27, 41, 29, -1), - Trans(28, 41, 30, 911), - Trans(29, 5, 30, 911), - Trans(29, 112, 30, 911), + Trans(28, 41, 30, 912), + Trans(29, 5, 30, 912), + Trans(29, 112, 30, 912), ], k: 3, }, @@ -3942,6 +3942,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ + Trans(0, 71, 6, 749), Trans(0, 74, 3, 746), Trans(0, 75, 1, 744), Trans(0, 84, 5, 748), @@ -4048,13 +4049,13 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 133 - "EmbedContent" */ LookaheadDFA { - prod0: 890, + prod0: 891, transitions: &[], k: 0, }, /* 134 - "EmbedContentToken" */ LookaheadDFA { - prod0: 891, + prod0: 892, transitions: &[], k: 0, }, @@ -4062,31 +4063,31 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 39, 1, 892), - Trans(0, 43, 2, 893), - Trans(0, 113, 1, 892), + Trans(0, 39, 1, 893), + Trans(0, 43, 2, 894), + Trans(0, 113, 1, 893), ], k: 1, }, /* 136 - "EmbedDeclaration" */ LookaheadDFA { - prod0: 889, + prod0: 890, transitions: &[], k: 0, }, /* 137 - "EmbedItem" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 39, 1, 894), Trans(0, 113, 2, 897)], + transitions: &[Trans(0, 39, 1, 895), Trans(0, 113, 2, 898)], k: 1, }, /* 138 - "EmbedItemList" */ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 39, 1, 895), - Trans(0, 43, 2, 896), - Trans(0, 113, 1, 895), + Trans(0, 39, 1, 896), + Trans(0, 43, 2, 897), + Trans(0, 113, 1, 896), ], k: 1, }, @@ -4423,7 +4424,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 160 - "ExportDeclaration" */ LookaheadDFA { - prod0: 763, + prod0: 764, transitions: &[], k: 0, }, @@ -4431,16 +4432,16 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 47, 1, 764), - Trans(0, 111, 2, 765), - Trans(0, 112, 2, 765), + Trans(0, 47, 1, 765), + Trans(0, 111, 2, 766), + Trans(0, 112, 2, 766), ], k: 1, }, /* 162 - "ExportDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 29, 1, 766), Trans(0, 46, 2, 767)], + transitions: &[Trans(0, 29, 1, 767), Trans(0, 46, 2, 768)], k: 1, }, /* 163 - "ExportTerm" */ @@ -5300,7 +5301,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 224 - "FunctionDeclaration" */ LookaheadDFA { - prod0: 749, + prod0: 750, transitions: &[], k: 0, }, @@ -5308,17 +5309,17 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 43, 2, 751), - Trans(0, 53, 1, 750), - Trans(0, 65, 1, 750), - Trans(0, 69, 1, 750), - Trans(0, 70, 1, 750), - Trans(0, 80, 1, 750), - Trans(0, 99, 1, 750), - Trans(0, 100, 1, 750), - Trans(0, 110, 1, 750), - Trans(0, 111, 1, 750), - Trans(0, 112, 1, 750), + Trans(0, 43, 2, 752), + Trans(0, 53, 1, 751), + Trans(0, 65, 1, 751), + Trans(0, 69, 1, 751), + Trans(0, 70, 1, 751), + Trans(0, 80, 1, 751), + Trans(0, 99, 1, 751), + Trans(0, 100, 1, 751), + Trans(0, 110, 1, 751), + Trans(0, 111, 1, 751), + Trans(0, 112, 1, 751), ], k: 1, }, @@ -5326,10 +5327,10 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 13, 2, 757), - Trans(0, 28, 1, 756), - Trans(0, 39, 2, 757), - Trans(0, 41, 2, 757), + Trans(0, 13, 2, 758), + Trans(0, 28, 1, 757), + Trans(0, 39, 2, 758), + Trans(0, 41, 2, 758), ], k: 1, }, @@ -5337,32 +5338,32 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 13, 2, 755), - Trans(0, 39, 2, 755), - Trans(0, 41, 1, 754), + Trans(0, 13, 2, 756), + Trans(0, 39, 2, 756), + Trans(0, 41, 1, 755), ], k: 1, }, /* 228 - "FunctionDeclarationOpt1" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 13, 1, 752), Trans(0, 39, 2, 753)], + transitions: &[Trans(0, 13, 1, 753), Trans(0, 39, 2, 754)], k: 1, }, /* 229 - "FunctionItem" */ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 53, 2, 759), - Trans(0, 65, 2, 759), - Trans(0, 69, 2, 759), - Trans(0, 70, 2, 759), - Trans(0, 80, 2, 759), - Trans(0, 99, 2, 759), - Trans(0, 100, 2, 759), - Trans(0, 110, 1, 758), - Trans(0, 111, 2, 759), - Trans(0, 112, 2, 759), + Trans(0, 53, 2, 760), + Trans(0, 65, 2, 760), + Trans(0, 69, 2, 760), + Trans(0, 70, 2, 760), + Trans(0, 80, 2, 760), + Trans(0, 99, 2, 760), + Trans(0, 100, 2, 760), + Trans(0, 110, 1, 759), + Trans(0, 111, 2, 760), + Trans(0, 112, 2, 760), ], k: 1, }, @@ -7884,14 +7885,14 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 271 - "ImportDeclaration" */ LookaheadDFA { - prod0: 760, + prod0: 761, transitions: &[], k: 0, }, /* 272 - "ImportDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 29, 1, 761), Trans(0, 46, 2, 762)], + transitions: &[Trans(0, 29, 1, 762), Trans(0, 46, 2, 763)], k: 1, }, /* 273 - "ImportTerm" */ @@ -7932,7 +7933,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 279 - "IncludeDeclaration" */ LookaheadDFA { - prod0: 898, + prod0: 899, transitions: &[], k: 0, }, @@ -8416,7 +8417,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 325 - "InterfaceDeclaration" */ LookaheadDFA { - prod0: 819, + prod0: 820, transitions: &[], k: 0, }, @@ -8424,64 +8425,64 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 820), - Trans(0, 36, 1, 820), - Trans(0, 39, 1, 820), - Trans(0, 43, 2, 821), - Trans(0, 60, 1, 820), - Trans(0, 64, 1, 820), - Trans(0, 65, 1, 820), - Trans(0, 66, 1, 820), - Trans(0, 70, 1, 820), - Trans(0, 71, 1, 820), - Trans(0, 73, 1, 820), - Trans(0, 80, 1, 820), - Trans(0, 81, 1, 820), - Trans(0, 84, 1, 820), - Trans(0, 104, 1, 820), - Trans(0, 106, 1, 820), - Trans(0, 109, 1, 820), - Trans(0, 110, 1, 820), + Trans(0, 30, 1, 821), + Trans(0, 36, 1, 821), + Trans(0, 39, 1, 821), + Trans(0, 43, 2, 822), + Trans(0, 60, 1, 821), + Trans(0, 64, 1, 821), + Trans(0, 65, 1, 821), + Trans(0, 66, 1, 821), + Trans(0, 70, 1, 821), + Trans(0, 71, 1, 821), + Trans(0, 73, 1, 821), + Trans(0, 80, 1, 821), + Trans(0, 81, 1, 821), + Trans(0, 84, 1, 821), + Trans(0, 104, 1, 821), + Trans(0, 106, 1, 821), + Trans(0, 109, 1, 821), + Trans(0, 110, 1, 821), ], k: 1, }, /* 327 - "InterfaceDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 78, 2, 827), Trans(0, 91, 1, 826)], + transitions: &[Trans(0, 78, 2, 828), Trans(0, 91, 1, 827)], k: 1, }, /* 328 - "InterfaceDeclarationOpt0" */ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 28, 1, 824), - Trans(0, 36, 2, 825), - Trans(0, 39, 2, 825), + Trans(0, 28, 1, 825), + Trans(0, 36, 2, 826), + Trans(0, 39, 2, 826), ], k: 1, }, /* 329 - "InterfaceDeclarationOpt1" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 36, 1, 822), Trans(0, 39, 2, 823)], + transitions: &[Trans(0, 36, 1, 823), Trans(0, 39, 2, 824)], k: 1, }, /* 330 - "InterfaceForDeclaration" */ LookaheadDFA { - prod0: 833, + prod0: 834, transitions: &[], k: 0, }, /* 331 - "InterfaceForDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 30, 2, 835), Trans(0, 102, 1, 834)], + transitions: &[Trans(0, 30, 2, 836), Trans(0, 102, 1, 835)], k: 1, }, /* 332 - "InterfaceGroup" */ LookaheadDFA { - prod0: 844, + prod0: 845, transitions: &[], k: 0, }, @@ -8489,22 +8490,22 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 2, 848), - Trans(0, 39, 1, 845), - Trans(0, 60, 2, 848), - Trans(0, 64, 2, 848), - Trans(0, 65, 2, 848), - Trans(0, 66, 2, 848), - Trans(0, 70, 2, 848), - Trans(0, 71, 2, 848), - Trans(0, 73, 2, 848), - Trans(0, 80, 2, 848), - Trans(0, 81, 2, 848), - Trans(0, 84, 2, 848), - Trans(0, 104, 2, 848), - Trans(0, 106, 2, 848), - Trans(0, 109, 2, 848), - Trans(0, 110, 2, 848), + Trans(0, 30, 2, 849), + Trans(0, 39, 1, 846), + Trans(0, 60, 2, 849), + Trans(0, 64, 2, 849), + Trans(0, 65, 2, 849), + Trans(0, 66, 2, 849), + Trans(0, 70, 2, 849), + Trans(0, 71, 2, 849), + Trans(0, 73, 2, 849), + Trans(0, 80, 2, 849), + Trans(0, 81, 2, 849), + Trans(0, 84, 2, 849), + Trans(0, 104, 2, 849), + Trans(0, 106, 2, 849), + Trans(0, 109, 2, 849), + Trans(0, 110, 2, 849), ], k: 1, }, @@ -8512,24 +8513,24 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 846), - Trans(0, 36, 1, 846), - Trans(0, 39, 1, 846), - Trans(0, 43, 2, 847), - Trans(0, 60, 1, 846), - Trans(0, 64, 1, 846), - Trans(0, 65, 1, 846), - Trans(0, 66, 1, 846), - Trans(0, 70, 1, 846), - Trans(0, 71, 1, 846), - Trans(0, 73, 1, 846), - Trans(0, 80, 1, 846), - Trans(0, 81, 1, 846), - Trans(0, 84, 1, 846), - Trans(0, 104, 1, 846), - Trans(0, 106, 1, 846), - Trans(0, 109, 1, 846), - Trans(0, 110, 1, 846), + Trans(0, 30, 1, 847), + Trans(0, 36, 1, 847), + Trans(0, 39, 1, 847), + Trans(0, 43, 2, 848), + Trans(0, 60, 1, 847), + Trans(0, 64, 1, 847), + Trans(0, 65, 1, 847), + Trans(0, 66, 1, 847), + Trans(0, 70, 1, 847), + Trans(0, 71, 1, 847), + Trans(0, 73, 1, 847), + Trans(0, 80, 1, 847), + Trans(0, 81, 1, 847), + Trans(0, 84, 1, 847), + Trans(0, 104, 1, 847), + Trans(0, 106, 1, 847), + Trans(0, 109, 1, 847), + Trans(0, 110, 1, 847), ], k: 1, }, @@ -8537,29 +8538,29 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 2, 850), - Trans(0, 36, 1, 849), - Trans(0, 39, 2, 850), - Trans(0, 60, 2, 850), - Trans(0, 64, 2, 850), - Trans(0, 65, 2, 850), - Trans(0, 66, 2, 850), - Trans(0, 70, 2, 850), - Trans(0, 71, 2, 850), - Trans(0, 73, 2, 850), - Trans(0, 80, 2, 850), - Trans(0, 81, 2, 850), - Trans(0, 84, 2, 850), - Trans(0, 104, 2, 850), - Trans(0, 106, 2, 850), - Trans(0, 109, 2, 850), - Trans(0, 110, 2, 850), + Trans(0, 30, 2, 851), + Trans(0, 36, 1, 850), + Trans(0, 39, 2, 851), + Trans(0, 60, 2, 851), + Trans(0, 64, 2, 851), + Trans(0, 65, 2, 851), + Trans(0, 66, 2, 851), + Trans(0, 70, 2, 851), + Trans(0, 71, 2, 851), + Trans(0, 73, 2, 851), + Trans(0, 80, 2, 851), + Trans(0, 81, 2, 851), + Trans(0, 84, 2, 851), + Trans(0, 104, 2, 851), + Trans(0, 106, 2, 851), + Trans(0, 109, 2, 851), + Trans(0, 110, 2, 851), ], k: 1, }, /* 336 - "InterfaceIfDeclaration" */ LookaheadDFA { - prod0: 828, + prod0: 829, transitions: &[], k: 0, }, @@ -8590,32 +8591,32 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(1, 30, 19, -1), Trans(1, 39, 35, -1), Trans(1, 70, 2, -1), - Trans(2, 5, 3, 829), - Trans(2, 6, 3, 829), - Trans(2, 7, 3, 829), - Trans(2, 8, 3, 829), - Trans(2, 9, 3, 829), - Trans(2, 10, 3, 829), - Trans(2, 11, 3, 829), - Trans(2, 18, 3, 829), - Trans(2, 24, 3, 829), - Trans(2, 25, 3, 829), - Trans(2, 26, 3, 829), - Trans(2, 27, 3, 829), - Trans(2, 38, 3, 829), - Trans(2, 39, 3, 829), - Trans(2, 41, 3, 829), - Trans(2, 53, 3, 829), - Trans(2, 70, 3, 829), - Trans(2, 76, 3, 829), - Trans(2, 83, 3, 829), - Trans(2, 86, 3, 829), - Trans(2, 88, 3, 829), - Trans(2, 111, 3, 829), - Trans(2, 112, 3, 829), - Trans(4, 30, 17, 830), - Trans(4, 39, 17, 830), - Trans(4, 70, 3, 829), + Trans(2, 5, 3, 830), + Trans(2, 6, 3, 830), + Trans(2, 7, 3, 830), + Trans(2, 8, 3, 830), + Trans(2, 9, 3, 830), + Trans(2, 10, 3, 830), + Trans(2, 11, 3, 830), + Trans(2, 18, 3, 830), + Trans(2, 24, 3, 830), + Trans(2, 25, 3, 830), + Trans(2, 26, 3, 830), + Trans(2, 27, 3, 830), + Trans(2, 38, 3, 830), + Trans(2, 39, 3, 830), + Trans(2, 41, 3, 830), + Trans(2, 53, 3, 830), + Trans(2, 70, 3, 830), + Trans(2, 76, 3, 830), + Trans(2, 83, 3, 830), + Trans(2, 86, 3, 830), + Trans(2, 88, 3, 830), + Trans(2, 111, 3, 830), + Trans(2, 112, 3, 830), + Trans(4, 30, 17, 831), + Trans(4, 39, 17, 831), + Trans(4, 70, 3, 830), Trans(5, 5, 42, -1), Trans(5, 112, 25, -1), Trans(6, 5, 38, -1), @@ -8639,7 +8640,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(7, 106, 19, -1), Trans(7, 109, 19, -1), Trans(7, 110, 19, -1), - Trans(8, 0, 17, 830), + Trans(8, 0, 17, 831), Trans(8, 5, 18, -1), Trans(8, 30, 19, -1), Trans(8, 36, 20, -1), @@ -8704,300 +8705,300 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(15, 112, 46, -1), Trans(16, 5, 42, -1), Trans(16, 112, 47, -1), - Trans(18, 0, 17, 830), - Trans(18, 30, 17, 830), - Trans(18, 36, 17, 830), - Trans(18, 39, 17, 830), - Trans(18, 43, 17, 830), - Trans(18, 58, 17, 830), - Trans(18, 59, 17, 830), - Trans(18, 60, 17, 830), - Trans(18, 64, 17, 830), - Trans(18, 65, 17, 830), - Trans(18, 66, 17, 830), - Trans(18, 70, 17, 830), - Trans(18, 71, 17, 830), - Trans(18, 72, 17, 830), - Trans(18, 73, 17, 830), - Trans(18, 78, 17, 830), - Trans(18, 80, 17, 830), - Trans(18, 81, 17, 830), - Trans(18, 84, 17, 830), - Trans(18, 85, 17, 830), - Trans(18, 89, 17, 830), - Trans(18, 91, 17, 830), - Trans(18, 104, 17, 830), - Trans(18, 106, 17, 830), - Trans(18, 109, 17, 830), - Trans(18, 110, 17, 830), - Trans(19, 5, 17, 830), - Trans(19, 112, 17, 830), - Trans(20, 5, 17, 830), - Trans(20, 40, 17, 830), - Trans(21, 5, 17, 830), - Trans(21, 30, 17, 830), - Trans(21, 36, 17, 830), - Trans(21, 39, 17, 830), - Trans(21, 43, 17, 830), - Trans(21, 59, 17, 830), - Trans(21, 60, 17, 830), - Trans(21, 64, 17, 830), - Trans(21, 65, 17, 830), - Trans(21, 66, 17, 830), - Trans(21, 70, 17, 830), - Trans(21, 71, 17, 830), - Trans(21, 72, 17, 830), - Trans(21, 73, 17, 830), - Trans(21, 78, 17, 830), - Trans(21, 80, 17, 830), - Trans(21, 81, 17, 830), - Trans(21, 84, 17, 830), - Trans(21, 85, 17, 830), - Trans(21, 89, 17, 830), - Trans(21, 91, 17, 830), - Trans(21, 104, 17, 830), - Trans(21, 106, 17, 830), - Trans(21, 109, 17, 830), - Trans(21, 110, 17, 830), - Trans(22, 0, 17, 830), - Trans(22, 5, 17, 830), - Trans(22, 30, 17, 830), - Trans(22, 36, 17, 830), - Trans(22, 39, 17, 830), - Trans(22, 43, 17, 830), - Trans(22, 58, 17, 830), - Trans(22, 59, 17, 830), - Trans(22, 60, 17, 830), - Trans(22, 64, 17, 830), - Trans(22, 65, 17, 830), - Trans(22, 66, 17, 830), - Trans(22, 70, 17, 830), - Trans(22, 71, 17, 830), - Trans(22, 72, 17, 830), - Trans(22, 73, 17, 830), - Trans(22, 78, 17, 830), - Trans(22, 80, 17, 830), - Trans(22, 81, 17, 830), - Trans(22, 84, 17, 830), - Trans(22, 85, 17, 830), - Trans(22, 89, 17, 830), - Trans(22, 91, 17, 830), - Trans(22, 104, 17, 830), - Trans(22, 106, 17, 830), - Trans(22, 109, 17, 830), - Trans(22, 110, 17, 830), - Trans(23, 5, 17, 830), - Trans(23, 30, 17, 830), - Trans(23, 39, 17, 830), - Trans(23, 70, 17, 830), - Trans(24, 5, 17, 830), - Trans(24, 41, 17, 830), - Trans(25, 5, 17, 830), - Trans(25, 39, 17, 830), - Trans(26, 5, 17, 830), - Trans(26, 6, 17, 830), - Trans(26, 7, 17, 830), - Trans(26, 8, 17, 830), - Trans(26, 9, 17, 830), - Trans(26, 10, 17, 830), - Trans(26, 11, 17, 830), - Trans(26, 18, 17, 830), - Trans(26, 24, 17, 830), - Trans(26, 25, 17, 830), - Trans(26, 26, 17, 830), - Trans(26, 27, 17, 830), - Trans(26, 38, 17, 830), - Trans(26, 39, 17, 830), - Trans(26, 41, 17, 830), - Trans(26, 53, 17, 830), - Trans(26, 70, 17, 830), - Trans(26, 76, 17, 830), - Trans(26, 83, 17, 830), - Trans(26, 86, 17, 830), - Trans(26, 88, 17, 830), - Trans(26, 111, 17, 830), - Trans(26, 112, 17, 830), - Trans(27, 5, 17, 830), - Trans(27, 111, 17, 830), - Trans(27, 112, 17, 830), - Trans(28, 5, 17, 830), - Trans(28, 78, 17, 830), - Trans(28, 85, 17, 830), - Trans(28, 89, 17, 830), - Trans(29, 6, 17, 830), - Trans(29, 7, 17, 830), - Trans(29, 8, 17, 830), - Trans(29, 9, 17, 830), - Trans(29, 10, 17, 830), - Trans(29, 11, 17, 830), - Trans(29, 18, 17, 830), - Trans(29, 24, 17, 830), - Trans(29, 25, 17, 830), - Trans(29, 26, 17, 830), - Trans(29, 27, 17, 830), - Trans(29, 38, 17, 830), - Trans(29, 39, 17, 830), - Trans(29, 41, 17, 830), - Trans(29, 53, 17, 830), - Trans(29, 70, 17, 830), - Trans(29, 76, 17, 830), - Trans(29, 83, 17, 830), - Trans(29, 86, 17, 830), - Trans(29, 88, 17, 830), - Trans(29, 111, 17, 830), - Trans(29, 112, 17, 830), - Trans(30, 5, 17, 830), - Trans(30, 16, 17, 830), - Trans(30, 17, 17, 830), - Trans(30, 18, 17, 830), - Trans(30, 19, 17, 830), - Trans(30, 20, 17, 830), - Trans(30, 21, 17, 830), - Trans(30, 22, 17, 830), - Trans(30, 23, 17, 830), - Trans(30, 24, 17, 830), - Trans(30, 25, 17, 830), - Trans(30, 26, 17, 830), - Trans(30, 30, 17, 830), - Trans(30, 47, 17, 830), - Trans(30, 51, 17, 830), - Trans(31, 5, 17, 830), - Trans(31, 6, 17, 830), - Trans(31, 7, 17, 830), - Trans(31, 8, 17, 830), - Trans(31, 9, 17, 830), - Trans(31, 10, 17, 830), - Trans(31, 11, 17, 830), - Trans(31, 18, 17, 830), - Trans(31, 24, 17, 830), - Trans(31, 25, 17, 830), - Trans(31, 26, 17, 830), - Trans(31, 27, 17, 830), - Trans(31, 38, 17, 830), - Trans(31, 39, 17, 830), - Trans(31, 41, 17, 830), - Trans(31, 53, 17, 830), - Trans(31, 57, 17, 830), - Trans(31, 70, 17, 830), - Trans(31, 76, 17, 830), - Trans(31, 83, 17, 830), - Trans(31, 86, 17, 830), - Trans(31, 88, 17, 830), - Trans(31, 111, 17, 830), - Trans(31, 112, 17, 830), - Trans(32, 5, 17, 830), - Trans(32, 16, 17, 830), - Trans(32, 17, 17, 830), - Trans(32, 18, 17, 830), - Trans(32, 19, 17, 830), - Trans(32, 20, 17, 830), - Trans(32, 21, 17, 830), - Trans(32, 22, 17, 830), - Trans(32, 23, 17, 830), - Trans(32, 24, 17, 830), - Trans(32, 25, 17, 830), - Trans(32, 26, 17, 830), - Trans(32, 29, 17, 830), - Trans(32, 30, 17, 830), - Trans(32, 34, 17, 830), - Trans(32, 40, 17, 830), - Trans(32, 41, 17, 830), - Trans(32, 47, 17, 830), - Trans(32, 51, 17, 830), - Trans(33, 5, 17, 830), - Trans(33, 16, 17, 830), - Trans(33, 17, 17, 830), - Trans(33, 18, 17, 830), - Trans(33, 19, 17, 830), - Trans(33, 20, 17, 830), - Trans(33, 21, 17, 830), - Trans(33, 22, 17, 830), - Trans(33, 23, 17, 830), - Trans(33, 24, 17, 830), - Trans(33, 25, 17, 830), - Trans(33, 26, 17, 830), - Trans(33, 28, 17, 830), - Trans(33, 29, 17, 830), - Trans(33, 30, 17, 830), - Trans(33, 34, 17, 830), - Trans(33, 40, 17, 830), - Trans(33, 41, 17, 830), - Trans(33, 47, 17, 830), - Trans(33, 51, 17, 830), - Trans(34, 30, 17, 830), - Trans(34, 36, 17, 830), - Trans(34, 39, 17, 830), - Trans(34, 43, 17, 830), - Trans(34, 60, 17, 830), - Trans(34, 64, 17, 830), - Trans(34, 65, 17, 830), - Trans(34, 66, 17, 830), - Trans(34, 70, 17, 830), - Trans(34, 71, 17, 830), - Trans(34, 73, 17, 830), - Trans(34, 80, 17, 830), - Trans(34, 81, 17, 830), - Trans(34, 84, 17, 830), - Trans(34, 104, 17, 830), - Trans(34, 106, 17, 830), - Trans(34, 109, 17, 830), - Trans(34, 110, 17, 830), - Trans(35, 5, 17, 830), - Trans(35, 30, 17, 830), - Trans(35, 36, 17, 830), - Trans(35, 39, 17, 830), - Trans(35, 43, 17, 830), - Trans(35, 60, 17, 830), - Trans(35, 64, 17, 830), - Trans(35, 65, 17, 830), - Trans(35, 66, 17, 830), - Trans(35, 70, 17, 830), - Trans(35, 71, 17, 830), - Trans(35, 73, 17, 830), - Trans(35, 80, 17, 830), - Trans(35, 81, 17, 830), - Trans(35, 84, 17, 830), - Trans(35, 104, 17, 830), - Trans(35, 106, 17, 830), - Trans(35, 109, 17, 830), - Trans(35, 110, 17, 830), - Trans(36, 39, 17, 830), - Trans(37, 5, 17, 830), - Trans(37, 43, 17, 830), - Trans(37, 53, 17, 830), - Trans(37, 65, 17, 830), - Trans(37, 69, 17, 830), - Trans(37, 70, 17, 830), - Trans(37, 80, 17, 830), - Trans(37, 99, 17, 830), - Trans(37, 100, 17, 830), - Trans(37, 111, 17, 830), - Trans(37, 112, 17, 830), - Trans(38, 40, 17, 830), - Trans(39, 111, 17, 830), - Trans(39, 112, 17, 830), - Trans(40, 5, 17, 830), - Trans(40, 29, 17, 830), - Trans(40, 46, 17, 830), - Trans(41, 5, 17, 830), - Trans(41, 28, 17, 830), - Trans(41, 29, 17, 830), - Trans(41, 46, 17, 830), - Trans(42, 112, 17, 830), - Trans(43, 5, 17, 830), - Trans(43, 30, 17, 830), - Trans(44, 5, 17, 830), - Trans(44, 79, 17, 830), - Trans(45, 5, 17, 830), - Trans(45, 13, 17, 830), - Trans(45, 28, 17, 830), - Trans(45, 39, 17, 830), - Trans(45, 41, 17, 830), - Trans(46, 5, 17, 830), - Trans(46, 28, 17, 830), - Trans(46, 39, 17, 830), - Trans(47, 5, 17, 830), - Trans(47, 35, 17, 830), + Trans(18, 0, 17, 831), + Trans(18, 30, 17, 831), + Trans(18, 36, 17, 831), + Trans(18, 39, 17, 831), + Trans(18, 43, 17, 831), + Trans(18, 58, 17, 831), + Trans(18, 59, 17, 831), + Trans(18, 60, 17, 831), + Trans(18, 64, 17, 831), + Trans(18, 65, 17, 831), + Trans(18, 66, 17, 831), + Trans(18, 70, 17, 831), + Trans(18, 71, 17, 831), + Trans(18, 72, 17, 831), + Trans(18, 73, 17, 831), + Trans(18, 78, 17, 831), + Trans(18, 80, 17, 831), + Trans(18, 81, 17, 831), + Trans(18, 84, 17, 831), + Trans(18, 85, 17, 831), + Trans(18, 89, 17, 831), + Trans(18, 91, 17, 831), + Trans(18, 104, 17, 831), + Trans(18, 106, 17, 831), + Trans(18, 109, 17, 831), + Trans(18, 110, 17, 831), + Trans(19, 5, 17, 831), + Trans(19, 112, 17, 831), + Trans(20, 5, 17, 831), + Trans(20, 40, 17, 831), + Trans(21, 5, 17, 831), + Trans(21, 30, 17, 831), + Trans(21, 36, 17, 831), + Trans(21, 39, 17, 831), + Trans(21, 43, 17, 831), + Trans(21, 59, 17, 831), + Trans(21, 60, 17, 831), + Trans(21, 64, 17, 831), + Trans(21, 65, 17, 831), + Trans(21, 66, 17, 831), + Trans(21, 70, 17, 831), + Trans(21, 71, 17, 831), + Trans(21, 72, 17, 831), + Trans(21, 73, 17, 831), + Trans(21, 78, 17, 831), + Trans(21, 80, 17, 831), + Trans(21, 81, 17, 831), + Trans(21, 84, 17, 831), + Trans(21, 85, 17, 831), + Trans(21, 89, 17, 831), + Trans(21, 91, 17, 831), + Trans(21, 104, 17, 831), + Trans(21, 106, 17, 831), + Trans(21, 109, 17, 831), + Trans(21, 110, 17, 831), + Trans(22, 0, 17, 831), + Trans(22, 5, 17, 831), + Trans(22, 30, 17, 831), + Trans(22, 36, 17, 831), + Trans(22, 39, 17, 831), + Trans(22, 43, 17, 831), + Trans(22, 58, 17, 831), + Trans(22, 59, 17, 831), + Trans(22, 60, 17, 831), + Trans(22, 64, 17, 831), + Trans(22, 65, 17, 831), + Trans(22, 66, 17, 831), + Trans(22, 70, 17, 831), + Trans(22, 71, 17, 831), + Trans(22, 72, 17, 831), + Trans(22, 73, 17, 831), + Trans(22, 78, 17, 831), + Trans(22, 80, 17, 831), + Trans(22, 81, 17, 831), + Trans(22, 84, 17, 831), + Trans(22, 85, 17, 831), + Trans(22, 89, 17, 831), + Trans(22, 91, 17, 831), + Trans(22, 104, 17, 831), + Trans(22, 106, 17, 831), + Trans(22, 109, 17, 831), + Trans(22, 110, 17, 831), + Trans(23, 5, 17, 831), + Trans(23, 30, 17, 831), + Trans(23, 39, 17, 831), + Trans(23, 70, 17, 831), + Trans(24, 5, 17, 831), + Trans(24, 41, 17, 831), + Trans(25, 5, 17, 831), + Trans(25, 39, 17, 831), + Trans(26, 5, 17, 831), + Trans(26, 6, 17, 831), + Trans(26, 7, 17, 831), + Trans(26, 8, 17, 831), + Trans(26, 9, 17, 831), + Trans(26, 10, 17, 831), + Trans(26, 11, 17, 831), + Trans(26, 18, 17, 831), + Trans(26, 24, 17, 831), + Trans(26, 25, 17, 831), + Trans(26, 26, 17, 831), + Trans(26, 27, 17, 831), + Trans(26, 38, 17, 831), + Trans(26, 39, 17, 831), + Trans(26, 41, 17, 831), + Trans(26, 53, 17, 831), + Trans(26, 70, 17, 831), + Trans(26, 76, 17, 831), + Trans(26, 83, 17, 831), + Trans(26, 86, 17, 831), + Trans(26, 88, 17, 831), + Trans(26, 111, 17, 831), + Trans(26, 112, 17, 831), + Trans(27, 5, 17, 831), + Trans(27, 111, 17, 831), + Trans(27, 112, 17, 831), + Trans(28, 5, 17, 831), + Trans(28, 78, 17, 831), + Trans(28, 85, 17, 831), + Trans(28, 89, 17, 831), + Trans(29, 6, 17, 831), + Trans(29, 7, 17, 831), + Trans(29, 8, 17, 831), + Trans(29, 9, 17, 831), + Trans(29, 10, 17, 831), + Trans(29, 11, 17, 831), + Trans(29, 18, 17, 831), + Trans(29, 24, 17, 831), + Trans(29, 25, 17, 831), + Trans(29, 26, 17, 831), + Trans(29, 27, 17, 831), + Trans(29, 38, 17, 831), + Trans(29, 39, 17, 831), + Trans(29, 41, 17, 831), + Trans(29, 53, 17, 831), + Trans(29, 70, 17, 831), + Trans(29, 76, 17, 831), + Trans(29, 83, 17, 831), + Trans(29, 86, 17, 831), + Trans(29, 88, 17, 831), + Trans(29, 111, 17, 831), + Trans(29, 112, 17, 831), + Trans(30, 5, 17, 831), + Trans(30, 16, 17, 831), + Trans(30, 17, 17, 831), + Trans(30, 18, 17, 831), + Trans(30, 19, 17, 831), + Trans(30, 20, 17, 831), + Trans(30, 21, 17, 831), + Trans(30, 22, 17, 831), + Trans(30, 23, 17, 831), + Trans(30, 24, 17, 831), + Trans(30, 25, 17, 831), + Trans(30, 26, 17, 831), + Trans(30, 30, 17, 831), + Trans(30, 47, 17, 831), + Trans(30, 51, 17, 831), + Trans(31, 5, 17, 831), + Trans(31, 6, 17, 831), + Trans(31, 7, 17, 831), + Trans(31, 8, 17, 831), + Trans(31, 9, 17, 831), + Trans(31, 10, 17, 831), + Trans(31, 11, 17, 831), + Trans(31, 18, 17, 831), + Trans(31, 24, 17, 831), + Trans(31, 25, 17, 831), + Trans(31, 26, 17, 831), + Trans(31, 27, 17, 831), + Trans(31, 38, 17, 831), + Trans(31, 39, 17, 831), + Trans(31, 41, 17, 831), + Trans(31, 53, 17, 831), + Trans(31, 57, 17, 831), + Trans(31, 70, 17, 831), + Trans(31, 76, 17, 831), + Trans(31, 83, 17, 831), + Trans(31, 86, 17, 831), + Trans(31, 88, 17, 831), + Trans(31, 111, 17, 831), + Trans(31, 112, 17, 831), + Trans(32, 5, 17, 831), + Trans(32, 16, 17, 831), + Trans(32, 17, 17, 831), + Trans(32, 18, 17, 831), + Trans(32, 19, 17, 831), + Trans(32, 20, 17, 831), + Trans(32, 21, 17, 831), + Trans(32, 22, 17, 831), + Trans(32, 23, 17, 831), + Trans(32, 24, 17, 831), + Trans(32, 25, 17, 831), + Trans(32, 26, 17, 831), + Trans(32, 29, 17, 831), + Trans(32, 30, 17, 831), + Trans(32, 34, 17, 831), + Trans(32, 40, 17, 831), + Trans(32, 41, 17, 831), + Trans(32, 47, 17, 831), + Trans(32, 51, 17, 831), + Trans(33, 5, 17, 831), + Trans(33, 16, 17, 831), + Trans(33, 17, 17, 831), + Trans(33, 18, 17, 831), + Trans(33, 19, 17, 831), + Trans(33, 20, 17, 831), + Trans(33, 21, 17, 831), + Trans(33, 22, 17, 831), + Trans(33, 23, 17, 831), + Trans(33, 24, 17, 831), + Trans(33, 25, 17, 831), + Trans(33, 26, 17, 831), + Trans(33, 28, 17, 831), + Trans(33, 29, 17, 831), + Trans(33, 30, 17, 831), + Trans(33, 34, 17, 831), + Trans(33, 40, 17, 831), + Trans(33, 41, 17, 831), + Trans(33, 47, 17, 831), + Trans(33, 51, 17, 831), + Trans(34, 30, 17, 831), + Trans(34, 36, 17, 831), + Trans(34, 39, 17, 831), + Trans(34, 43, 17, 831), + Trans(34, 60, 17, 831), + Trans(34, 64, 17, 831), + Trans(34, 65, 17, 831), + Trans(34, 66, 17, 831), + Trans(34, 70, 17, 831), + Trans(34, 71, 17, 831), + Trans(34, 73, 17, 831), + Trans(34, 80, 17, 831), + Trans(34, 81, 17, 831), + Trans(34, 84, 17, 831), + Trans(34, 104, 17, 831), + Trans(34, 106, 17, 831), + Trans(34, 109, 17, 831), + Trans(34, 110, 17, 831), + Trans(35, 5, 17, 831), + Trans(35, 30, 17, 831), + Trans(35, 36, 17, 831), + Trans(35, 39, 17, 831), + Trans(35, 43, 17, 831), + Trans(35, 60, 17, 831), + Trans(35, 64, 17, 831), + Trans(35, 65, 17, 831), + Trans(35, 66, 17, 831), + Trans(35, 70, 17, 831), + Trans(35, 71, 17, 831), + Trans(35, 73, 17, 831), + Trans(35, 80, 17, 831), + Trans(35, 81, 17, 831), + Trans(35, 84, 17, 831), + Trans(35, 104, 17, 831), + Trans(35, 106, 17, 831), + Trans(35, 109, 17, 831), + Trans(35, 110, 17, 831), + Trans(36, 39, 17, 831), + Trans(37, 5, 17, 831), + Trans(37, 43, 17, 831), + Trans(37, 53, 17, 831), + Trans(37, 65, 17, 831), + Trans(37, 69, 17, 831), + Trans(37, 70, 17, 831), + Trans(37, 80, 17, 831), + Trans(37, 99, 17, 831), + Trans(37, 100, 17, 831), + Trans(37, 111, 17, 831), + Trans(37, 112, 17, 831), + Trans(38, 40, 17, 831), + Trans(39, 111, 17, 831), + Trans(39, 112, 17, 831), + Trans(40, 5, 17, 831), + Trans(40, 29, 17, 831), + Trans(40, 46, 17, 831), + Trans(41, 5, 17, 831), + Trans(41, 28, 17, 831), + Trans(41, 29, 17, 831), + Trans(41, 46, 17, 831), + Trans(42, 112, 17, 831), + Trans(43, 5, 17, 831), + Trans(43, 30, 17, 831), + Trans(44, 5, 17, 831), + Trans(44, 79, 17, 831), + Trans(45, 5, 17, 831), + Trans(45, 13, 17, 831), + Trans(45, 28, 17, 831), + Trans(45, 39, 17, 831), + Trans(45, 41, 17, 831), + Trans(46, 5, 17, 831), + Trans(46, 28, 17, 831), + Trans(46, 39, 17, 831), + Trans(47, 5, 17, 831), + Trans(47, 35, 17, 831), ], k: 3, }, @@ -9005,25 +9006,25 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 2, 832), - Trans(0, 36, 2, 832), - Trans(0, 39, 2, 832), - Trans(0, 43, 2, 832), - Trans(0, 58, 1, 831), - Trans(0, 60, 2, 832), - Trans(0, 64, 2, 832), - Trans(0, 65, 2, 832), - Trans(0, 66, 2, 832), - Trans(0, 70, 2, 832), - Trans(0, 71, 2, 832), - Trans(0, 73, 2, 832), - Trans(0, 80, 2, 832), - Trans(0, 81, 2, 832), - Trans(0, 84, 2, 832), - Trans(0, 104, 2, 832), - Trans(0, 106, 2, 832), - Trans(0, 109, 2, 832), - Trans(0, 110, 2, 832), + Trans(0, 30, 2, 833), + Trans(0, 36, 2, 833), + Trans(0, 39, 2, 833), + Trans(0, 43, 2, 833), + Trans(0, 58, 1, 832), + Trans(0, 60, 2, 833), + Trans(0, 64, 2, 833), + Trans(0, 65, 2, 833), + Trans(0, 66, 2, 833), + Trans(0, 70, 2, 833), + Trans(0, 71, 2, 833), + Trans(0, 73, 2, 833), + Trans(0, 80, 2, 833), + Trans(0, 81, 2, 833), + Trans(0, 84, 2, 833), + Trans(0, 104, 2, 833), + Trans(0, 106, 2, 833), + Trans(0, 109, 2, 833), + Trans(0, 110, 2, 833), ], k: 1, }, @@ -9031,27 +9032,27 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 10, 860), - Trans(0, 60, 8, 858), - Trans(0, 64, 14, 864), - Trans(0, 65, 6, 856), - Trans(0, 66, 11, 861), - Trans(0, 70, 5, 855), - Trans(0, 71, 12, 862), - Trans(0, 73, 13, 863), - Trans(0, 80, 1, 851), - Trans(0, 81, 3, 853), - Trans(0, 84, 4, 854), - Trans(0, 104, 9, 859), - Trans(0, 106, 7, 857), - Trans(0, 109, 9, 859), - Trans(0, 110, 2, 852), + Trans(0, 30, 10, 861), + Trans(0, 60, 8, 859), + Trans(0, 64, 14, 865), + Trans(0, 65, 6, 857), + Trans(0, 66, 11, 862), + Trans(0, 70, 5, 856), + Trans(0, 71, 12, 863), + Trans(0, 73, 13, 864), + Trans(0, 80, 1, 852), + Trans(0, 81, 3, 854), + Trans(0, 84, 4, 855), + Trans(0, 104, 9, 860), + Trans(0, 106, 7, 858), + Trans(0, 109, 9, 860), + Trans(0, 110, 2, 853), ], k: 1, }, /* 340 - "InterfaceNamedBlock" */ LookaheadDFA { - prod0: 836, + prod0: 837, transitions: &[], k: 0, }, @@ -9059,30 +9060,30 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 837), - Trans(0, 36, 1, 837), - Trans(0, 39, 1, 837), - Trans(0, 43, 2, 838), - Trans(0, 60, 1, 837), - Trans(0, 64, 1, 837), - Trans(0, 65, 1, 837), - Trans(0, 66, 1, 837), - Trans(0, 70, 1, 837), - Trans(0, 71, 1, 837), - Trans(0, 73, 1, 837), - Trans(0, 80, 1, 837), - Trans(0, 81, 1, 837), - Trans(0, 84, 1, 837), - Trans(0, 104, 1, 837), - Trans(0, 106, 1, 837), - Trans(0, 109, 1, 837), - Trans(0, 110, 1, 837), + Trans(0, 30, 1, 838), + Trans(0, 36, 1, 838), + Trans(0, 39, 1, 838), + Trans(0, 43, 2, 839), + Trans(0, 60, 1, 838), + Trans(0, 64, 1, 838), + Trans(0, 65, 1, 838), + Trans(0, 66, 1, 838), + Trans(0, 70, 1, 838), + Trans(0, 71, 1, 838), + Trans(0, 73, 1, 838), + Trans(0, 80, 1, 838), + Trans(0, 81, 1, 838), + Trans(0, 84, 1, 838), + Trans(0, 104, 1, 838), + Trans(0, 106, 1, 838), + Trans(0, 109, 1, 838), + Trans(0, 110, 1, 838), ], k: 1, }, /* 342 - "InterfaceOptionalNamedBlock" */ LookaheadDFA { - prod0: 839, + prod0: 840, transitions: &[], k: 0, }, @@ -9090,31 +9091,31 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 840), - Trans(0, 36, 1, 840), - Trans(0, 39, 1, 840), - Trans(0, 43, 2, 841), - Trans(0, 60, 1, 840), - Trans(0, 64, 1, 840), - Trans(0, 65, 1, 840), - Trans(0, 66, 1, 840), - Trans(0, 70, 1, 840), - Trans(0, 71, 1, 840), - Trans(0, 73, 1, 840), - Trans(0, 80, 1, 840), - Trans(0, 81, 1, 840), - Trans(0, 84, 1, 840), - Trans(0, 104, 1, 840), - Trans(0, 106, 1, 840), - Trans(0, 109, 1, 840), - Trans(0, 110, 1, 840), + Trans(0, 30, 1, 841), + Trans(0, 36, 1, 841), + Trans(0, 39, 1, 841), + Trans(0, 43, 2, 842), + Trans(0, 60, 1, 841), + Trans(0, 64, 1, 841), + Trans(0, 65, 1, 841), + Trans(0, 66, 1, 841), + Trans(0, 70, 1, 841), + Trans(0, 71, 1, 841), + Trans(0, 73, 1, 841), + Trans(0, 80, 1, 841), + Trans(0, 81, 1, 841), + Trans(0, 84, 1, 841), + Trans(0, 104, 1, 841), + Trans(0, 106, 1, 841), + Trans(0, 109, 1, 841), + Trans(0, 110, 1, 841), ], k: 1, }, /* 344 - "InterfaceOptionalNamedBlockOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 30, 1, 842), Trans(0, 39, 2, 843)], + transitions: &[Trans(0, 30, 1, 843), Trans(0, 39, 2, 844)], k: 1, }, /* 345 - "InterfaceTerm" */ @@ -9597,7 +9598,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 393 - "ModuleDeclaration" */ LookaheadDFA { - prod0: 768, + prod0: 769, transitions: &[], k: 0, }, @@ -9605,44 +9606,44 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 769), - Trans(0, 36, 1, 769), - Trans(0, 39, 1, 769), - Trans(0, 43, 2, 770), - Trans(0, 48, 1, 769), - Trans(0, 49, 1, 769), - Trans(0, 50, 1, 769), - Trans(0, 60, 1, 769), - Trans(0, 64, 1, 769), - Trans(0, 65, 1, 769), - Trans(0, 66, 1, 769), - Trans(0, 70, 1, 769), - Trans(0, 71, 1, 769), - Trans(0, 73, 1, 769), - Trans(0, 77, 1, 769), - Trans(0, 80, 1, 769), - Trans(0, 81, 1, 769), - Trans(0, 104, 1, 769), - Trans(0, 106, 1, 769), - Trans(0, 109, 1, 769), - Trans(0, 110, 1, 769), + Trans(0, 30, 1, 770), + Trans(0, 36, 1, 770), + Trans(0, 39, 1, 770), + Trans(0, 43, 2, 771), + Trans(0, 48, 1, 770), + Trans(0, 49, 1, 770), + Trans(0, 50, 1, 770), + Trans(0, 60, 1, 770), + Trans(0, 64, 1, 770), + Trans(0, 65, 1, 770), + Trans(0, 66, 1, 770), + Trans(0, 70, 1, 770), + Trans(0, 71, 1, 770), + Trans(0, 73, 1, 770), + Trans(0, 77, 1, 770), + Trans(0, 80, 1, 770), + Trans(0, 81, 1, 770), + Trans(0, 104, 1, 770), + Trans(0, 106, 1, 770), + Trans(0, 109, 1, 770), + Trans(0, 110, 1, 770), ], k: 1, }, /* 395 - "ModuleDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 85, 2, 778), Trans(0, 91, 1, 777)], + transitions: &[Trans(0, 85, 2, 779), Trans(0, 91, 1, 778)], k: 1, }, /* 396 - "ModuleDeclarationOpt0" */ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 28, 1, 775), - Trans(0, 36, 2, 776), - Trans(0, 39, 2, 776), - Trans(0, 41, 2, 776), + Trans(0, 28, 1, 776), + Trans(0, 36, 2, 777), + Trans(0, 39, 2, 777), + Trans(0, 41, 2, 777), ], k: 1, }, @@ -9650,33 +9651,33 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 36, 1, 773), - Trans(0, 39, 2, 774), - Trans(0, 41, 2, 774), + Trans(0, 36, 1, 774), + Trans(0, 39, 2, 775), + Trans(0, 41, 2, 775), ], k: 1, }, /* 398 - "ModuleDeclarationOpt2" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 39, 2, 772), Trans(0, 41, 1, 771)], + transitions: &[Trans(0, 39, 2, 773), Trans(0, 41, 1, 772)], k: 1, }, /* 399 - "ModuleForDeclaration" */ LookaheadDFA { - prod0: 784, + prod0: 785, transitions: &[], k: 0, }, /* 400 - "ModuleForDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 30, 2, 786), Trans(0, 102, 1, 785)], + transitions: &[Trans(0, 30, 2, 787), Trans(0, 102, 1, 786)], k: 1, }, /* 401 - "ModuleGroup" */ LookaheadDFA { - prod0: 795, + prod0: 796, transitions: &[], k: 0, }, @@ -9684,25 +9685,25 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 2, 799), - Trans(0, 39, 1, 796), - Trans(0, 48, 2, 799), - Trans(0, 49, 2, 799), - Trans(0, 50, 2, 799), - Trans(0, 60, 2, 799), - Trans(0, 64, 2, 799), - Trans(0, 65, 2, 799), - Trans(0, 66, 2, 799), - Trans(0, 70, 2, 799), - Trans(0, 71, 2, 799), - Trans(0, 73, 2, 799), - Trans(0, 77, 2, 799), - Trans(0, 80, 2, 799), - Trans(0, 81, 2, 799), - Trans(0, 104, 2, 799), - Trans(0, 106, 2, 799), - Trans(0, 109, 2, 799), - Trans(0, 110, 2, 799), + Trans(0, 30, 2, 800), + Trans(0, 39, 1, 797), + Trans(0, 48, 2, 800), + Trans(0, 49, 2, 800), + Trans(0, 50, 2, 800), + Trans(0, 60, 2, 800), + Trans(0, 64, 2, 800), + Trans(0, 65, 2, 800), + Trans(0, 66, 2, 800), + Trans(0, 70, 2, 800), + Trans(0, 71, 2, 800), + Trans(0, 73, 2, 800), + Trans(0, 77, 2, 800), + Trans(0, 80, 2, 800), + Trans(0, 81, 2, 800), + Trans(0, 104, 2, 800), + Trans(0, 106, 2, 800), + Trans(0, 109, 2, 800), + Trans(0, 110, 2, 800), ], k: 1, }, @@ -9710,27 +9711,27 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 797), - Trans(0, 36, 1, 797), - Trans(0, 39, 1, 797), - Trans(0, 43, 2, 798), - Trans(0, 48, 1, 797), - Trans(0, 49, 1, 797), - Trans(0, 50, 1, 797), - Trans(0, 60, 1, 797), - Trans(0, 64, 1, 797), - Trans(0, 65, 1, 797), - Trans(0, 66, 1, 797), - Trans(0, 70, 1, 797), - Trans(0, 71, 1, 797), - Trans(0, 73, 1, 797), - Trans(0, 77, 1, 797), - Trans(0, 80, 1, 797), - Trans(0, 81, 1, 797), - Trans(0, 104, 1, 797), - Trans(0, 106, 1, 797), - Trans(0, 109, 1, 797), - Trans(0, 110, 1, 797), + Trans(0, 30, 1, 798), + Trans(0, 36, 1, 798), + Trans(0, 39, 1, 798), + Trans(0, 43, 2, 799), + Trans(0, 48, 1, 798), + Trans(0, 49, 1, 798), + Trans(0, 50, 1, 798), + Trans(0, 60, 1, 798), + Trans(0, 64, 1, 798), + Trans(0, 65, 1, 798), + Trans(0, 66, 1, 798), + Trans(0, 70, 1, 798), + Trans(0, 71, 1, 798), + Trans(0, 73, 1, 798), + Trans(0, 77, 1, 798), + Trans(0, 80, 1, 798), + Trans(0, 81, 1, 798), + Trans(0, 104, 1, 798), + Trans(0, 106, 1, 798), + Trans(0, 109, 1, 798), + Trans(0, 110, 1, 798), ], k: 1, }, @@ -9738,32 +9739,32 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 2, 801), - Trans(0, 36, 1, 800), - Trans(0, 39, 2, 801), - Trans(0, 48, 2, 801), - Trans(0, 49, 2, 801), - Trans(0, 50, 2, 801), - Trans(0, 60, 2, 801), - Trans(0, 64, 2, 801), - Trans(0, 65, 2, 801), - Trans(0, 66, 2, 801), - Trans(0, 70, 2, 801), - Trans(0, 71, 2, 801), - Trans(0, 73, 2, 801), - Trans(0, 77, 2, 801), - Trans(0, 80, 2, 801), - Trans(0, 81, 2, 801), - Trans(0, 104, 2, 801), - Trans(0, 106, 2, 801), - Trans(0, 109, 2, 801), - Trans(0, 110, 2, 801), + Trans(0, 30, 2, 802), + Trans(0, 36, 1, 801), + Trans(0, 39, 2, 802), + Trans(0, 48, 2, 802), + Trans(0, 49, 2, 802), + Trans(0, 50, 2, 802), + Trans(0, 60, 2, 802), + Trans(0, 64, 2, 802), + Trans(0, 65, 2, 802), + Trans(0, 66, 2, 802), + Trans(0, 70, 2, 802), + Trans(0, 71, 2, 802), + Trans(0, 73, 2, 802), + Trans(0, 77, 2, 802), + Trans(0, 80, 2, 802), + Trans(0, 81, 2, 802), + Trans(0, 104, 2, 802), + Trans(0, 106, 2, 802), + Trans(0, 109, 2, 802), + Trans(0, 110, 2, 802), ], k: 1, }, /* 405 - "ModuleIfDeclaration" */ LookaheadDFA { - prod0: 779, + prod0: 780, transitions: &[], k: 0, }, @@ -9797,32 +9798,32 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(1, 30, 21, -1), Trans(1, 39, 38, -1), Trans(1, 70, 2, -1), - Trans(2, 5, 3, 780), - Trans(2, 6, 3, 780), - Trans(2, 7, 3, 780), - Trans(2, 8, 3, 780), - Trans(2, 9, 3, 780), - Trans(2, 10, 3, 780), - Trans(2, 11, 3, 780), - Trans(2, 18, 3, 780), - Trans(2, 24, 3, 780), - Trans(2, 25, 3, 780), - Trans(2, 26, 3, 780), - Trans(2, 27, 3, 780), - Trans(2, 38, 3, 780), - Trans(2, 39, 3, 780), - Trans(2, 41, 3, 780), - Trans(2, 53, 3, 780), - Trans(2, 70, 3, 780), - Trans(2, 76, 3, 780), - Trans(2, 83, 3, 780), - Trans(2, 86, 3, 780), - Trans(2, 88, 3, 780), - Trans(2, 111, 3, 780), - Trans(2, 112, 3, 780), - Trans(4, 30, 19, 781), - Trans(4, 39, 19, 781), - Trans(4, 70, 3, 780), + Trans(2, 5, 3, 781), + Trans(2, 6, 3, 781), + Trans(2, 7, 3, 781), + Trans(2, 8, 3, 781), + Trans(2, 9, 3, 781), + Trans(2, 10, 3, 781), + Trans(2, 11, 3, 781), + Trans(2, 18, 3, 781), + Trans(2, 24, 3, 781), + Trans(2, 25, 3, 781), + Trans(2, 26, 3, 781), + Trans(2, 27, 3, 781), + Trans(2, 38, 3, 781), + Trans(2, 39, 3, 781), + Trans(2, 41, 3, 781), + Trans(2, 53, 3, 781), + Trans(2, 70, 3, 781), + Trans(2, 76, 3, 781), + Trans(2, 83, 3, 781), + Trans(2, 86, 3, 781), + Trans(2, 88, 3, 781), + Trans(2, 111, 3, 781), + Trans(2, 112, 3, 781), + Trans(4, 30, 19, 782), + Trans(4, 39, 19, 782), + Trans(4, 70, 3, 781), Trans(5, 5, 46, -1), Trans(5, 112, 25, -1), Trans(6, 5, 42, -1), @@ -9849,7 +9850,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(7, 106, 21, -1), Trans(7, 109, 21, -1), Trans(7, 110, 21, -1), - Trans(8, 0, 19, 781), + Trans(8, 0, 19, 782), Trans(8, 5, 20, -1), Trans(8, 30, 21, -1), Trans(8, 36, 22, -1), @@ -9922,324 +9923,324 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ Trans(17, 112, 51, -1), Trans(18, 5, 46, -1), Trans(18, 112, 52, -1), - Trans(20, 0, 19, 781), - Trans(20, 30, 19, 781), - Trans(20, 36, 19, 781), - Trans(20, 39, 19, 781), - Trans(20, 43, 19, 781), - Trans(20, 48, 19, 781), - Trans(20, 49, 19, 781), - Trans(20, 50, 19, 781), - Trans(20, 58, 19, 781), - Trans(20, 59, 19, 781), - Trans(20, 60, 19, 781), - Trans(20, 64, 19, 781), - Trans(20, 65, 19, 781), - Trans(20, 66, 19, 781), - Trans(20, 70, 19, 781), - Trans(20, 71, 19, 781), - Trans(20, 72, 19, 781), - Trans(20, 73, 19, 781), - Trans(20, 77, 19, 781), - Trans(20, 78, 19, 781), - Trans(20, 80, 19, 781), - Trans(20, 81, 19, 781), - Trans(20, 85, 19, 781), - Trans(20, 89, 19, 781), - Trans(20, 91, 19, 781), - Trans(20, 104, 19, 781), - Trans(20, 106, 19, 781), - Trans(20, 109, 19, 781), - Trans(20, 110, 19, 781), - Trans(21, 5, 19, 781), - Trans(21, 112, 19, 781), - Trans(22, 5, 19, 781), - Trans(22, 40, 19, 781), - Trans(23, 5, 19, 781), - Trans(23, 30, 19, 781), - Trans(23, 36, 19, 781), - Trans(23, 39, 19, 781), - Trans(23, 43, 19, 781), - Trans(23, 48, 19, 781), - Trans(23, 49, 19, 781), - Trans(23, 50, 19, 781), - Trans(23, 59, 19, 781), - Trans(23, 60, 19, 781), - Trans(23, 64, 19, 781), - Trans(23, 65, 19, 781), - Trans(23, 66, 19, 781), - Trans(23, 70, 19, 781), - Trans(23, 71, 19, 781), - Trans(23, 72, 19, 781), - Trans(23, 73, 19, 781), - Trans(23, 77, 19, 781), - Trans(23, 78, 19, 781), - Trans(23, 80, 19, 781), - Trans(23, 81, 19, 781), - Trans(23, 85, 19, 781), - Trans(23, 89, 19, 781), - Trans(23, 91, 19, 781), - Trans(23, 104, 19, 781), - Trans(23, 106, 19, 781), - Trans(23, 109, 19, 781), - Trans(23, 110, 19, 781), - Trans(24, 0, 19, 781), - Trans(24, 5, 19, 781), - Trans(24, 30, 19, 781), - Trans(24, 36, 19, 781), - Trans(24, 39, 19, 781), - Trans(24, 43, 19, 781), - Trans(24, 48, 19, 781), - Trans(24, 49, 19, 781), - Trans(24, 50, 19, 781), - Trans(24, 58, 19, 781), - Trans(24, 59, 19, 781), - Trans(24, 60, 19, 781), - Trans(24, 64, 19, 781), - Trans(24, 65, 19, 781), - Trans(24, 66, 19, 781), - Trans(24, 70, 19, 781), - Trans(24, 71, 19, 781), - Trans(24, 72, 19, 781), - Trans(24, 73, 19, 781), - Trans(24, 77, 19, 781), - Trans(24, 78, 19, 781), - Trans(24, 80, 19, 781), - Trans(24, 81, 19, 781), - Trans(24, 85, 19, 781), - Trans(24, 89, 19, 781), - Trans(24, 91, 19, 781), - Trans(24, 104, 19, 781), - Trans(24, 106, 19, 781), - Trans(24, 109, 19, 781), - Trans(24, 110, 19, 781), - Trans(25, 5, 19, 781), - Trans(25, 39, 19, 781), - Trans(26, 5, 19, 781), - Trans(26, 39, 19, 781), - Trans(26, 41, 19, 781), - Trans(27, 5, 19, 781), - Trans(27, 30, 19, 781), - Trans(27, 39, 19, 781), - Trans(27, 70, 19, 781), - Trans(28, 5, 19, 781), - Trans(28, 41, 19, 781), - Trans(29, 5, 19, 781), - Trans(29, 6, 19, 781), - Trans(29, 7, 19, 781), - Trans(29, 8, 19, 781), - Trans(29, 9, 19, 781), - Trans(29, 10, 19, 781), - Trans(29, 11, 19, 781), - Trans(29, 18, 19, 781), - Trans(29, 24, 19, 781), - Trans(29, 25, 19, 781), - Trans(29, 26, 19, 781), - Trans(29, 27, 19, 781), - Trans(29, 38, 19, 781), - Trans(29, 39, 19, 781), - Trans(29, 41, 19, 781), - Trans(29, 53, 19, 781), - Trans(29, 70, 19, 781), - Trans(29, 76, 19, 781), - Trans(29, 83, 19, 781), - Trans(29, 86, 19, 781), - Trans(29, 88, 19, 781), - Trans(29, 111, 19, 781), - Trans(29, 112, 19, 781), - Trans(30, 5, 19, 781), - Trans(30, 111, 19, 781), - Trans(30, 112, 19, 781), - Trans(31, 5, 19, 781), - Trans(31, 78, 19, 781), - Trans(31, 85, 19, 781), - Trans(31, 89, 19, 781), - Trans(32, 6, 19, 781), - Trans(32, 7, 19, 781), - Trans(32, 8, 19, 781), - Trans(32, 9, 19, 781), - Trans(32, 10, 19, 781), - Trans(32, 11, 19, 781), - Trans(32, 18, 19, 781), - Trans(32, 24, 19, 781), - Trans(32, 25, 19, 781), - Trans(32, 26, 19, 781), - Trans(32, 27, 19, 781), - Trans(32, 38, 19, 781), - Trans(32, 39, 19, 781), - Trans(32, 41, 19, 781), - Trans(32, 53, 19, 781), - Trans(32, 70, 19, 781), - Trans(32, 76, 19, 781), - Trans(32, 83, 19, 781), - Trans(32, 86, 19, 781), - Trans(32, 88, 19, 781), - Trans(32, 111, 19, 781), - Trans(32, 112, 19, 781), - Trans(33, 5, 19, 781), - Trans(33, 16, 19, 781), - Trans(33, 17, 19, 781), - Trans(33, 18, 19, 781), - Trans(33, 19, 19, 781), - Trans(33, 20, 19, 781), - Trans(33, 21, 19, 781), - Trans(33, 22, 19, 781), - Trans(33, 23, 19, 781), - Trans(33, 24, 19, 781), - Trans(33, 25, 19, 781), - Trans(33, 26, 19, 781), - Trans(33, 30, 19, 781), - Trans(33, 47, 19, 781), - Trans(33, 51, 19, 781), - Trans(34, 5, 19, 781), - Trans(34, 6, 19, 781), - Trans(34, 7, 19, 781), - Trans(34, 8, 19, 781), - Trans(34, 9, 19, 781), - Trans(34, 10, 19, 781), - Trans(34, 11, 19, 781), - Trans(34, 18, 19, 781), - Trans(34, 24, 19, 781), - Trans(34, 25, 19, 781), - Trans(34, 26, 19, 781), - Trans(34, 27, 19, 781), - Trans(34, 38, 19, 781), - Trans(34, 39, 19, 781), - Trans(34, 41, 19, 781), - Trans(34, 53, 19, 781), - Trans(34, 57, 19, 781), - Trans(34, 70, 19, 781), - Trans(34, 76, 19, 781), - Trans(34, 83, 19, 781), - Trans(34, 86, 19, 781), - Trans(34, 88, 19, 781), - Trans(34, 111, 19, 781), - Trans(34, 112, 19, 781), - Trans(35, 5, 19, 781), - Trans(35, 16, 19, 781), - Trans(35, 17, 19, 781), - Trans(35, 18, 19, 781), - Trans(35, 19, 19, 781), - Trans(35, 20, 19, 781), - Trans(35, 21, 19, 781), - Trans(35, 22, 19, 781), - Trans(35, 23, 19, 781), - Trans(35, 24, 19, 781), - Trans(35, 25, 19, 781), - Trans(35, 26, 19, 781), - Trans(35, 29, 19, 781), - Trans(35, 30, 19, 781), - Trans(35, 34, 19, 781), - Trans(35, 40, 19, 781), - Trans(35, 41, 19, 781), - Trans(35, 47, 19, 781), - Trans(35, 51, 19, 781), - Trans(36, 5, 19, 781), - Trans(36, 16, 19, 781), - Trans(36, 17, 19, 781), - Trans(36, 18, 19, 781), - Trans(36, 19, 19, 781), - Trans(36, 20, 19, 781), - Trans(36, 21, 19, 781), - Trans(36, 22, 19, 781), - Trans(36, 23, 19, 781), - Trans(36, 24, 19, 781), - Trans(36, 25, 19, 781), - Trans(36, 26, 19, 781), - Trans(36, 28, 19, 781), - Trans(36, 29, 19, 781), - Trans(36, 30, 19, 781), - Trans(36, 34, 19, 781), - Trans(36, 40, 19, 781), - Trans(36, 41, 19, 781), - Trans(36, 47, 19, 781), - Trans(36, 51, 19, 781), - Trans(37, 30, 19, 781), - Trans(37, 36, 19, 781), - Trans(37, 39, 19, 781), - Trans(37, 43, 19, 781), - Trans(37, 48, 19, 781), - Trans(37, 49, 19, 781), - Trans(37, 50, 19, 781), - Trans(37, 60, 19, 781), - Trans(37, 64, 19, 781), - Trans(37, 65, 19, 781), - Trans(37, 66, 19, 781), - Trans(37, 70, 19, 781), - Trans(37, 71, 19, 781), - Trans(37, 73, 19, 781), - Trans(37, 77, 19, 781), - Trans(37, 80, 19, 781), - Trans(37, 81, 19, 781), - Trans(37, 104, 19, 781), - Trans(37, 106, 19, 781), - Trans(37, 109, 19, 781), - Trans(37, 110, 19, 781), - Trans(38, 5, 19, 781), - Trans(38, 30, 19, 781), - Trans(38, 36, 19, 781), - Trans(38, 39, 19, 781), - Trans(38, 43, 19, 781), - Trans(38, 48, 19, 781), - Trans(38, 49, 19, 781), - Trans(38, 50, 19, 781), - Trans(38, 60, 19, 781), - Trans(38, 64, 19, 781), - Trans(38, 65, 19, 781), - Trans(38, 66, 19, 781), - Trans(38, 70, 19, 781), - Trans(38, 71, 19, 781), - Trans(38, 73, 19, 781), - Trans(38, 77, 19, 781), - Trans(38, 80, 19, 781), - Trans(38, 81, 19, 781), - Trans(38, 104, 19, 781), - Trans(38, 106, 19, 781), - Trans(38, 109, 19, 781), - Trans(38, 110, 19, 781), - Trans(39, 39, 19, 781), - Trans(40, 5, 19, 781), - Trans(40, 43, 19, 781), - Trans(40, 53, 19, 781), - Trans(40, 65, 19, 781), - Trans(40, 69, 19, 781), - Trans(40, 70, 19, 781), - Trans(40, 80, 19, 781), - Trans(40, 99, 19, 781), - Trans(40, 100, 19, 781), - Trans(40, 111, 19, 781), - Trans(40, 112, 19, 781), - Trans(41, 39, 19, 781), - Trans(41, 41, 19, 781), - Trans(42, 40, 19, 781), - Trans(43, 111, 19, 781), - Trans(43, 112, 19, 781), - Trans(44, 5, 19, 781), - Trans(44, 29, 19, 781), - Trans(44, 46, 19, 781), - Trans(45, 5, 19, 781), - Trans(45, 28, 19, 781), - Trans(45, 29, 19, 781), - Trans(45, 46, 19, 781), - Trans(46, 112, 19, 781), - Trans(47, 5, 19, 781), - Trans(47, 34, 19, 781), - Trans(47, 35, 19, 781), - Trans(47, 40, 19, 781), - Trans(48, 5, 19, 781), - Trans(48, 30, 19, 781), - Trans(49, 5, 19, 781), - Trans(49, 79, 19, 781), - Trans(50, 5, 19, 781), - Trans(50, 13, 19, 781), - Trans(50, 28, 19, 781), - Trans(50, 39, 19, 781), - Trans(50, 41, 19, 781), - Trans(51, 5, 19, 781), - Trans(51, 28, 19, 781), - Trans(51, 39, 19, 781), - Trans(52, 5, 19, 781), - Trans(52, 35, 19, 781), + Trans(20, 0, 19, 782), + Trans(20, 30, 19, 782), + Trans(20, 36, 19, 782), + Trans(20, 39, 19, 782), + Trans(20, 43, 19, 782), + Trans(20, 48, 19, 782), + Trans(20, 49, 19, 782), + Trans(20, 50, 19, 782), + Trans(20, 58, 19, 782), + Trans(20, 59, 19, 782), + Trans(20, 60, 19, 782), + Trans(20, 64, 19, 782), + Trans(20, 65, 19, 782), + Trans(20, 66, 19, 782), + Trans(20, 70, 19, 782), + Trans(20, 71, 19, 782), + Trans(20, 72, 19, 782), + Trans(20, 73, 19, 782), + Trans(20, 77, 19, 782), + Trans(20, 78, 19, 782), + Trans(20, 80, 19, 782), + Trans(20, 81, 19, 782), + Trans(20, 85, 19, 782), + Trans(20, 89, 19, 782), + Trans(20, 91, 19, 782), + Trans(20, 104, 19, 782), + Trans(20, 106, 19, 782), + Trans(20, 109, 19, 782), + Trans(20, 110, 19, 782), + Trans(21, 5, 19, 782), + Trans(21, 112, 19, 782), + Trans(22, 5, 19, 782), + Trans(22, 40, 19, 782), + Trans(23, 5, 19, 782), + Trans(23, 30, 19, 782), + Trans(23, 36, 19, 782), + Trans(23, 39, 19, 782), + Trans(23, 43, 19, 782), + Trans(23, 48, 19, 782), + Trans(23, 49, 19, 782), + Trans(23, 50, 19, 782), + Trans(23, 59, 19, 782), + Trans(23, 60, 19, 782), + Trans(23, 64, 19, 782), + Trans(23, 65, 19, 782), + Trans(23, 66, 19, 782), + Trans(23, 70, 19, 782), + Trans(23, 71, 19, 782), + Trans(23, 72, 19, 782), + Trans(23, 73, 19, 782), + Trans(23, 77, 19, 782), + Trans(23, 78, 19, 782), + Trans(23, 80, 19, 782), + Trans(23, 81, 19, 782), + Trans(23, 85, 19, 782), + Trans(23, 89, 19, 782), + Trans(23, 91, 19, 782), + Trans(23, 104, 19, 782), + Trans(23, 106, 19, 782), + Trans(23, 109, 19, 782), + Trans(23, 110, 19, 782), + Trans(24, 0, 19, 782), + Trans(24, 5, 19, 782), + Trans(24, 30, 19, 782), + Trans(24, 36, 19, 782), + Trans(24, 39, 19, 782), + Trans(24, 43, 19, 782), + Trans(24, 48, 19, 782), + Trans(24, 49, 19, 782), + Trans(24, 50, 19, 782), + Trans(24, 58, 19, 782), + Trans(24, 59, 19, 782), + Trans(24, 60, 19, 782), + Trans(24, 64, 19, 782), + Trans(24, 65, 19, 782), + Trans(24, 66, 19, 782), + Trans(24, 70, 19, 782), + Trans(24, 71, 19, 782), + Trans(24, 72, 19, 782), + Trans(24, 73, 19, 782), + Trans(24, 77, 19, 782), + Trans(24, 78, 19, 782), + Trans(24, 80, 19, 782), + Trans(24, 81, 19, 782), + Trans(24, 85, 19, 782), + Trans(24, 89, 19, 782), + Trans(24, 91, 19, 782), + Trans(24, 104, 19, 782), + Trans(24, 106, 19, 782), + Trans(24, 109, 19, 782), + Trans(24, 110, 19, 782), + Trans(25, 5, 19, 782), + Trans(25, 39, 19, 782), + Trans(26, 5, 19, 782), + Trans(26, 39, 19, 782), + Trans(26, 41, 19, 782), + Trans(27, 5, 19, 782), + Trans(27, 30, 19, 782), + Trans(27, 39, 19, 782), + Trans(27, 70, 19, 782), + Trans(28, 5, 19, 782), + Trans(28, 41, 19, 782), + Trans(29, 5, 19, 782), + Trans(29, 6, 19, 782), + Trans(29, 7, 19, 782), + Trans(29, 8, 19, 782), + Trans(29, 9, 19, 782), + Trans(29, 10, 19, 782), + Trans(29, 11, 19, 782), + Trans(29, 18, 19, 782), + Trans(29, 24, 19, 782), + Trans(29, 25, 19, 782), + Trans(29, 26, 19, 782), + Trans(29, 27, 19, 782), + Trans(29, 38, 19, 782), + Trans(29, 39, 19, 782), + Trans(29, 41, 19, 782), + Trans(29, 53, 19, 782), + Trans(29, 70, 19, 782), + Trans(29, 76, 19, 782), + Trans(29, 83, 19, 782), + Trans(29, 86, 19, 782), + Trans(29, 88, 19, 782), + Trans(29, 111, 19, 782), + Trans(29, 112, 19, 782), + Trans(30, 5, 19, 782), + Trans(30, 111, 19, 782), + Trans(30, 112, 19, 782), + Trans(31, 5, 19, 782), + Trans(31, 78, 19, 782), + Trans(31, 85, 19, 782), + Trans(31, 89, 19, 782), + Trans(32, 6, 19, 782), + Trans(32, 7, 19, 782), + Trans(32, 8, 19, 782), + Trans(32, 9, 19, 782), + Trans(32, 10, 19, 782), + Trans(32, 11, 19, 782), + Trans(32, 18, 19, 782), + Trans(32, 24, 19, 782), + Trans(32, 25, 19, 782), + Trans(32, 26, 19, 782), + Trans(32, 27, 19, 782), + Trans(32, 38, 19, 782), + Trans(32, 39, 19, 782), + Trans(32, 41, 19, 782), + Trans(32, 53, 19, 782), + Trans(32, 70, 19, 782), + Trans(32, 76, 19, 782), + Trans(32, 83, 19, 782), + Trans(32, 86, 19, 782), + Trans(32, 88, 19, 782), + Trans(32, 111, 19, 782), + Trans(32, 112, 19, 782), + Trans(33, 5, 19, 782), + Trans(33, 16, 19, 782), + Trans(33, 17, 19, 782), + Trans(33, 18, 19, 782), + Trans(33, 19, 19, 782), + Trans(33, 20, 19, 782), + Trans(33, 21, 19, 782), + Trans(33, 22, 19, 782), + Trans(33, 23, 19, 782), + Trans(33, 24, 19, 782), + Trans(33, 25, 19, 782), + Trans(33, 26, 19, 782), + Trans(33, 30, 19, 782), + Trans(33, 47, 19, 782), + Trans(33, 51, 19, 782), + Trans(34, 5, 19, 782), + Trans(34, 6, 19, 782), + Trans(34, 7, 19, 782), + Trans(34, 8, 19, 782), + Trans(34, 9, 19, 782), + Trans(34, 10, 19, 782), + Trans(34, 11, 19, 782), + Trans(34, 18, 19, 782), + Trans(34, 24, 19, 782), + Trans(34, 25, 19, 782), + Trans(34, 26, 19, 782), + Trans(34, 27, 19, 782), + Trans(34, 38, 19, 782), + Trans(34, 39, 19, 782), + Trans(34, 41, 19, 782), + Trans(34, 53, 19, 782), + Trans(34, 57, 19, 782), + Trans(34, 70, 19, 782), + Trans(34, 76, 19, 782), + Trans(34, 83, 19, 782), + Trans(34, 86, 19, 782), + Trans(34, 88, 19, 782), + Trans(34, 111, 19, 782), + Trans(34, 112, 19, 782), + Trans(35, 5, 19, 782), + Trans(35, 16, 19, 782), + Trans(35, 17, 19, 782), + Trans(35, 18, 19, 782), + Trans(35, 19, 19, 782), + Trans(35, 20, 19, 782), + Trans(35, 21, 19, 782), + Trans(35, 22, 19, 782), + Trans(35, 23, 19, 782), + Trans(35, 24, 19, 782), + Trans(35, 25, 19, 782), + Trans(35, 26, 19, 782), + Trans(35, 29, 19, 782), + Trans(35, 30, 19, 782), + Trans(35, 34, 19, 782), + Trans(35, 40, 19, 782), + Trans(35, 41, 19, 782), + Trans(35, 47, 19, 782), + Trans(35, 51, 19, 782), + Trans(36, 5, 19, 782), + Trans(36, 16, 19, 782), + Trans(36, 17, 19, 782), + Trans(36, 18, 19, 782), + Trans(36, 19, 19, 782), + Trans(36, 20, 19, 782), + Trans(36, 21, 19, 782), + Trans(36, 22, 19, 782), + Trans(36, 23, 19, 782), + Trans(36, 24, 19, 782), + Trans(36, 25, 19, 782), + Trans(36, 26, 19, 782), + Trans(36, 28, 19, 782), + Trans(36, 29, 19, 782), + Trans(36, 30, 19, 782), + Trans(36, 34, 19, 782), + Trans(36, 40, 19, 782), + Trans(36, 41, 19, 782), + Trans(36, 47, 19, 782), + Trans(36, 51, 19, 782), + Trans(37, 30, 19, 782), + Trans(37, 36, 19, 782), + Trans(37, 39, 19, 782), + Trans(37, 43, 19, 782), + Trans(37, 48, 19, 782), + Trans(37, 49, 19, 782), + Trans(37, 50, 19, 782), + Trans(37, 60, 19, 782), + Trans(37, 64, 19, 782), + Trans(37, 65, 19, 782), + Trans(37, 66, 19, 782), + Trans(37, 70, 19, 782), + Trans(37, 71, 19, 782), + Trans(37, 73, 19, 782), + Trans(37, 77, 19, 782), + Trans(37, 80, 19, 782), + Trans(37, 81, 19, 782), + Trans(37, 104, 19, 782), + Trans(37, 106, 19, 782), + Trans(37, 109, 19, 782), + Trans(37, 110, 19, 782), + Trans(38, 5, 19, 782), + Trans(38, 30, 19, 782), + Trans(38, 36, 19, 782), + Trans(38, 39, 19, 782), + Trans(38, 43, 19, 782), + Trans(38, 48, 19, 782), + Trans(38, 49, 19, 782), + Trans(38, 50, 19, 782), + Trans(38, 60, 19, 782), + Trans(38, 64, 19, 782), + Trans(38, 65, 19, 782), + Trans(38, 66, 19, 782), + Trans(38, 70, 19, 782), + Trans(38, 71, 19, 782), + Trans(38, 73, 19, 782), + Trans(38, 77, 19, 782), + Trans(38, 80, 19, 782), + Trans(38, 81, 19, 782), + Trans(38, 104, 19, 782), + Trans(38, 106, 19, 782), + Trans(38, 109, 19, 782), + Trans(38, 110, 19, 782), + Trans(39, 39, 19, 782), + Trans(40, 5, 19, 782), + Trans(40, 43, 19, 782), + Trans(40, 53, 19, 782), + Trans(40, 65, 19, 782), + Trans(40, 69, 19, 782), + Trans(40, 70, 19, 782), + Trans(40, 80, 19, 782), + Trans(40, 99, 19, 782), + Trans(40, 100, 19, 782), + Trans(40, 111, 19, 782), + Trans(40, 112, 19, 782), + Trans(41, 39, 19, 782), + Trans(41, 41, 19, 782), + Trans(42, 40, 19, 782), + Trans(43, 111, 19, 782), + Trans(43, 112, 19, 782), + Trans(44, 5, 19, 782), + Trans(44, 29, 19, 782), + Trans(44, 46, 19, 782), + Trans(45, 5, 19, 782), + Trans(45, 28, 19, 782), + Trans(45, 29, 19, 782), + Trans(45, 46, 19, 782), + Trans(46, 112, 19, 782), + Trans(47, 5, 19, 782), + Trans(47, 34, 19, 782), + Trans(47, 35, 19, 782), + Trans(47, 40, 19, 782), + Trans(48, 5, 19, 782), + Trans(48, 30, 19, 782), + Trans(49, 5, 19, 782), + Trans(49, 79, 19, 782), + Trans(50, 5, 19, 782), + Trans(50, 13, 19, 782), + Trans(50, 28, 19, 782), + Trans(50, 39, 19, 782), + Trans(50, 41, 19, 782), + Trans(51, 5, 19, 782), + Trans(51, 28, 19, 782), + Trans(51, 39, 19, 782), + Trans(52, 5, 19, 782), + Trans(52, 35, 19, 782), ], k: 3, }, @@ -10247,28 +10248,28 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 2, 783), - Trans(0, 36, 2, 783), - Trans(0, 39, 2, 783), - Trans(0, 43, 2, 783), - Trans(0, 48, 2, 783), - Trans(0, 49, 2, 783), - Trans(0, 50, 2, 783), - Trans(0, 58, 1, 782), - Trans(0, 60, 2, 783), - Trans(0, 64, 2, 783), - Trans(0, 65, 2, 783), - Trans(0, 66, 2, 783), - Trans(0, 70, 2, 783), - Trans(0, 71, 2, 783), - Trans(0, 73, 2, 783), - Trans(0, 77, 2, 783), - Trans(0, 80, 2, 783), - Trans(0, 81, 2, 783), - Trans(0, 104, 2, 783), - Trans(0, 106, 2, 783), - Trans(0, 109, 2, 783), - Trans(0, 110, 2, 783), + Trans(0, 30, 2, 784), + Trans(0, 36, 2, 784), + Trans(0, 39, 2, 784), + Trans(0, 43, 2, 784), + Trans(0, 48, 2, 784), + Trans(0, 49, 2, 784), + Trans(0, 50, 2, 784), + Trans(0, 58, 1, 783), + Trans(0, 60, 2, 784), + Trans(0, 64, 2, 784), + Trans(0, 65, 2, 784), + Trans(0, 66, 2, 784), + Trans(0, 70, 2, 784), + Trans(0, 71, 2, 784), + Trans(0, 73, 2, 784), + Trans(0, 77, 2, 784), + Trans(0, 80, 2, 784), + Trans(0, 81, 2, 784), + Trans(0, 104, 2, 784), + Trans(0, 106, 2, 784), + Trans(0, 109, 2, 784), + Trans(0, 110, 2, 784), ], k: 1, }, @@ -10276,30 +10277,30 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 14, 815), - Trans(0, 48, 7, 808), - Trans(0, 49, 6, 807), - Trans(0, 50, 8, 809), - Trans(0, 60, 12, 813), - Trans(0, 64, 17, 818), - Trans(0, 65, 11, 812), - Trans(0, 66, 9, 810), - Trans(0, 70, 10, 811), - Trans(0, 71, 15, 816), - Trans(0, 73, 16, 817), - Trans(0, 77, 3, 804), - Trans(0, 80, 1, 802), - Trans(0, 81, 5, 806), - Trans(0, 104, 13, 814), - Trans(0, 106, 4, 805), - Trans(0, 109, 13, 814), - Trans(0, 110, 2, 803), + Trans(0, 30, 14, 816), + Trans(0, 48, 7, 809), + Trans(0, 49, 6, 808), + Trans(0, 50, 8, 810), + Trans(0, 60, 12, 814), + Trans(0, 64, 17, 819), + Trans(0, 65, 11, 813), + Trans(0, 66, 9, 811), + Trans(0, 70, 10, 812), + Trans(0, 71, 15, 817), + Trans(0, 73, 16, 818), + Trans(0, 77, 3, 805), + Trans(0, 80, 1, 803), + Trans(0, 81, 5, 807), + Trans(0, 104, 13, 815), + Trans(0, 106, 4, 806), + Trans(0, 109, 13, 815), + Trans(0, 110, 2, 804), ], k: 1, }, /* 409 - "ModuleNamedBlock" */ LookaheadDFA { - prod0: 787, + prod0: 788, transitions: &[], k: 0, }, @@ -10307,33 +10308,33 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 788), - Trans(0, 36, 1, 788), - Trans(0, 39, 1, 788), - Trans(0, 43, 2, 789), - Trans(0, 48, 1, 788), - Trans(0, 49, 1, 788), - Trans(0, 50, 1, 788), - Trans(0, 60, 1, 788), - Trans(0, 64, 1, 788), - Trans(0, 65, 1, 788), - Trans(0, 66, 1, 788), - Trans(0, 70, 1, 788), - Trans(0, 71, 1, 788), - Trans(0, 73, 1, 788), - Trans(0, 77, 1, 788), - Trans(0, 80, 1, 788), - Trans(0, 81, 1, 788), - Trans(0, 104, 1, 788), - Trans(0, 106, 1, 788), - Trans(0, 109, 1, 788), - Trans(0, 110, 1, 788), + Trans(0, 30, 1, 789), + Trans(0, 36, 1, 789), + Trans(0, 39, 1, 789), + Trans(0, 43, 2, 790), + Trans(0, 48, 1, 789), + Trans(0, 49, 1, 789), + Trans(0, 50, 1, 789), + Trans(0, 60, 1, 789), + Trans(0, 64, 1, 789), + Trans(0, 65, 1, 789), + Trans(0, 66, 1, 789), + Trans(0, 70, 1, 789), + Trans(0, 71, 1, 789), + Trans(0, 73, 1, 789), + Trans(0, 77, 1, 789), + Trans(0, 80, 1, 789), + Trans(0, 81, 1, 789), + Trans(0, 104, 1, 789), + Trans(0, 106, 1, 789), + Trans(0, 109, 1, 789), + Trans(0, 110, 1, 789), ], k: 1, }, /* 411 - "ModuleOptionalNamedBlock" */ LookaheadDFA { - prod0: 790, + prod0: 791, transitions: &[], k: 0, }, @@ -10341,34 +10342,34 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 30, 1, 791), - Trans(0, 36, 1, 791), - Trans(0, 39, 1, 791), - Trans(0, 43, 2, 792), - Trans(0, 48, 1, 791), - Trans(0, 49, 1, 791), - Trans(0, 50, 1, 791), - Trans(0, 60, 1, 791), - Trans(0, 64, 1, 791), - Trans(0, 65, 1, 791), - Trans(0, 66, 1, 791), - Trans(0, 70, 1, 791), - Trans(0, 71, 1, 791), - Trans(0, 73, 1, 791), - Trans(0, 77, 1, 791), - Trans(0, 80, 1, 791), - Trans(0, 81, 1, 791), - Trans(0, 104, 1, 791), - Trans(0, 106, 1, 791), - Trans(0, 109, 1, 791), - Trans(0, 110, 1, 791), + Trans(0, 30, 1, 792), + Trans(0, 36, 1, 792), + Trans(0, 39, 1, 792), + Trans(0, 43, 2, 793), + Trans(0, 48, 1, 792), + Trans(0, 49, 1, 792), + Trans(0, 50, 1, 792), + Trans(0, 60, 1, 792), + Trans(0, 64, 1, 792), + Trans(0, 65, 1, 792), + Trans(0, 66, 1, 792), + Trans(0, 70, 1, 792), + Trans(0, 71, 1, 792), + Trans(0, 73, 1, 792), + Trans(0, 77, 1, 792), + Trans(0, 80, 1, 792), + Trans(0, 81, 1, 792), + Trans(0, 104, 1, 792), + Trans(0, 106, 1, 792), + Trans(0, 109, 1, 792), + Trans(0, 110, 1, 792), ], k: 1, }, /* 413 - "ModuleOptionalNamedBlockOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 30, 1, 793), Trans(0, 39, 2, 794)], + transitions: &[Trans(0, 30, 1, 794), Trans(0, 39, 2, 795)], k: 1, }, /* 414 - "ModuleTerm" */ @@ -10661,7 +10662,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 461 - "PackageDeclaration" */ LookaheadDFA { - prod0: 865, + prod0: 866, transitions: &[], k: 0, }, @@ -10669,38 +10670,38 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 36, 1, 866), - Trans(0, 39, 1, 866), - Trans(0, 43, 2, 867), - Trans(0, 60, 1, 866), - Trans(0, 61, 1, 866), - Trans(0, 64, 1, 866), - Trans(0, 66, 1, 866), - Trans(0, 71, 1, 866), - Trans(0, 73, 1, 866), - Trans(0, 81, 1, 866), - Trans(0, 104, 1, 866), - Trans(0, 106, 1, 866), - Trans(0, 109, 1, 866), - Trans(0, 110, 1, 866), + Trans(0, 36, 1, 867), + Trans(0, 39, 1, 867), + Trans(0, 43, 2, 868), + Trans(0, 60, 1, 867), + Trans(0, 61, 1, 867), + Trans(0, 64, 1, 867), + Trans(0, 66, 1, 867), + Trans(0, 71, 1, 867), + Trans(0, 73, 1, 867), + Trans(0, 81, 1, 867), + Trans(0, 104, 1, 867), + Trans(0, 106, 1, 867), + Trans(0, 109, 1, 867), + Trans(0, 110, 1, 867), ], k: 1, }, /* 463 - "PackageDeclarationOpt" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 89, 2, 871), Trans(0, 91, 1, 870)], + transitions: &[Trans(0, 89, 2, 872), Trans(0, 91, 1, 871)], k: 1, }, /* 464 - "PackageDeclarationOpt0" */ LookaheadDFA { prod0: -1, - transitions: &[Trans(0, 28, 1, 868), Trans(0, 39, 2, 869)], + transitions: &[Trans(0, 28, 1, 869), Trans(0, 39, 2, 870)], k: 1, }, /* 465 - "PackageGroup" */ LookaheadDFA { - prod0: 872, + prod0: 873, transitions: &[], k: 0, }, @@ -10708,18 +10709,18 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 39, 1, 873), - Trans(0, 60, 2, 876), - Trans(0, 61, 2, 876), - Trans(0, 64, 2, 876), - Trans(0, 66, 2, 876), - Trans(0, 71, 2, 876), - Trans(0, 73, 2, 876), - Trans(0, 81, 2, 876), - Trans(0, 104, 2, 876), - Trans(0, 106, 2, 876), - Trans(0, 109, 2, 876), - Trans(0, 110, 2, 876), + Trans(0, 39, 1, 874), + Trans(0, 60, 2, 877), + Trans(0, 61, 2, 877), + Trans(0, 64, 2, 877), + Trans(0, 66, 2, 877), + Trans(0, 71, 2, 877), + Trans(0, 73, 2, 877), + Trans(0, 81, 2, 877), + Trans(0, 104, 2, 877), + Trans(0, 106, 2, 877), + Trans(0, 109, 2, 877), + Trans(0, 110, 2, 877), ], k: 1, }, @@ -10727,20 +10728,20 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 36, 1, 874), - Trans(0, 39, 1, 874), - Trans(0, 43, 2, 875), - Trans(0, 60, 1, 874), - Trans(0, 61, 1, 874), - Trans(0, 64, 1, 874), - Trans(0, 66, 1, 874), - Trans(0, 71, 1, 874), - Trans(0, 73, 1, 874), - Trans(0, 81, 1, 874), - Trans(0, 104, 1, 874), - Trans(0, 106, 1, 874), - Trans(0, 109, 1, 874), - Trans(0, 110, 1, 874), + Trans(0, 36, 1, 875), + Trans(0, 39, 1, 875), + Trans(0, 43, 2, 876), + Trans(0, 60, 1, 875), + Trans(0, 61, 1, 875), + Trans(0, 64, 1, 875), + Trans(0, 66, 1, 875), + Trans(0, 71, 1, 875), + Trans(0, 73, 1, 875), + Trans(0, 81, 1, 875), + Trans(0, 104, 1, 875), + Trans(0, 106, 1, 875), + Trans(0, 109, 1, 875), + Trans(0, 110, 1, 875), ], k: 1, }, @@ -10748,19 +10749,19 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 36, 1, 877), - Trans(0, 39, 2, 878), - Trans(0, 60, 2, 878), - Trans(0, 61, 2, 878), - Trans(0, 64, 2, 878), - Trans(0, 66, 2, 878), - Trans(0, 71, 2, 878), - Trans(0, 73, 2, 878), - Trans(0, 81, 2, 878), - Trans(0, 104, 2, 878), - Trans(0, 106, 2, 878), - Trans(0, 109, 2, 878), - Trans(0, 110, 2, 878), + Trans(0, 36, 1, 878), + Trans(0, 39, 2, 879), + Trans(0, 60, 2, 879), + Trans(0, 61, 2, 879), + Trans(0, 64, 2, 879), + Trans(0, 66, 2, 879), + Trans(0, 71, 2, 879), + Trans(0, 73, 2, 879), + Trans(0, 81, 2, 879), + Trans(0, 104, 2, 879), + Trans(0, 106, 2, 879), + Trans(0, 109, 2, 879), + Trans(0, 110, 2, 879), ], k: 1, }, @@ -10768,17 +10769,17 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 60, 4, 882), - Trans(0, 61, 8, 886), - Trans(0, 64, 10, 888), - Trans(0, 66, 6, 884), - Trans(0, 71, 7, 885), - Trans(0, 73, 9, 887), - Trans(0, 81, 2, 880), - Trans(0, 104, 5, 883), - Trans(0, 106, 3, 881), - Trans(0, 109, 5, 883), - Trans(0, 110, 1, 879), + Trans(0, 60, 4, 883), + Trans(0, 61, 8, 887), + Trans(0, 64, 10, 889), + Trans(0, 66, 6, 885), + Trans(0, 71, 7, 886), + Trans(0, 73, 9, 888), + Trans(0, 81, 2, 881), + Trans(0, 104, 5, 884), + Trans(0, 106, 3, 882), + Trans(0, 109, 5, 884), + Trans(0, 110, 1, 880), ], k: 1, }, @@ -10868,6 +10869,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ + Trans(0, 71, 1, 740), Trans(0, 74, 1, 740), Trans(0, 75, 1, 740), Trans(0, 78, 2, 741), @@ -15713,7 +15715,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, /* 613 - "Veryl" */ LookaheadDFA { - prod0: 912, + prod0: 913, transitions: &[], k: 0, }, @@ -15721,16 +15723,16 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ LookaheadDFA { prod0: -1, transitions: &[ - Trans(0, 0, 2, 914), - Trans(0, 36, 1, 913), - Trans(0, 39, 1, 913), - Trans(0, 59, 1, 913), - Trans(0, 71, 1, 913), - Trans(0, 72, 1, 913), - Trans(0, 78, 1, 913), - Trans(0, 85, 1, 913), - Trans(0, 89, 1, 913), - Trans(0, 91, 1, 913), + Trans(0, 0, 2, 915), + Trans(0, 36, 1, 914), + Trans(0, 39, 1, 914), + Trans(0, 59, 1, 914), + Trans(0, 71, 1, 914), + Trans(0, 72, 1, 914), + Trans(0, 78, 1, 914), + Trans(0, 85, 1, 914), + Trans(0, 89, 1, 914), + Trans(0, 91, 1, 914), ], k: 1, }, @@ -16649,7 +16651,7 @@ pub const LOOKAHEAD_AUTOMATA: &[LookaheadDFA; 640] = &[ }, ]; -pub const PRODUCTIONS: &[Production; 915] = &[ +pub const PRODUCTIONS: &[Production; 916] = &[ // 0 - CommentsTerm: "(?:(?:(?://.*(?:\r\n|\r|\n|$))|(?:(?ms)/\u{2a}.*?\u{2a}/))\s*)+"; Production { lhs: 102, @@ -20664,7 +20666,12 @@ pub const PRODUCTIONS: &[Production; 915] = &[ lhs: 116, production: &[ParseType::N(381)], }, - // 749 - FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ LBrace FunctionDeclarationList /* Vec */ RBrace; + // 749 - Direction: Import; + Production { + lhs: 116, + production: &[ParseType::N(270)], + }, + // 750 - FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ LBrace FunctionDeclarationList /* Vec */ RBrace; Production { lhs: 224, production: &[ @@ -20678,57 +20685,57 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(221), ], }, - // 750 - FunctionDeclarationList: FunctionItem FunctionDeclarationList; + // 751 - FunctionDeclarationList: FunctionItem FunctionDeclarationList; Production { lhs: 225, production: &[ParseType::N(225), ParseType::N(229)], }, - // 751 - FunctionDeclarationList: ; + // 752 - FunctionDeclarationList: ; Production { lhs: 225, production: &[], }, - // 752 - FunctionDeclarationOpt1: MinusGT ScalarType; + // 753 - FunctionDeclarationOpt1: MinusGT ScalarType; Production { lhs: 228, production: &[ParseType::N(540), ParseType::N(378)], }, - // 753 - FunctionDeclarationOpt1: ; + // 754 - FunctionDeclarationOpt1: ; Production { lhs: 228, production: &[], }, - // 754 - FunctionDeclarationOpt0: PortDeclaration; + // 755 - FunctionDeclarationOpt0: PortDeclaration; Production { lhs: 227, production: &[ParseType::N(478)], }, - // 755 - FunctionDeclarationOpt0: ; + // 756 - FunctionDeclarationOpt0: ; Production { lhs: 227, production: &[], }, - // 756 - FunctionDeclarationOpt: WithGenericParameter; + // 757 - FunctionDeclarationOpt: WithGenericParameter; Production { lhs: 226, production: &[ParseType::N(623)], }, - // 757 - FunctionDeclarationOpt: ; + // 758 - FunctionDeclarationOpt: ; Production { lhs: 226, production: &[], }, - // 758 - FunctionItem: VarDeclaration; + // 759 - FunctionItem: VarDeclaration; Production { lhs: 229, production: &[ParseType::N(607)], }, - // 759 - FunctionItem: Statement; + // 760 - FunctionItem: Statement; Production { lhs: 229, production: &[ParseType::N(562)], }, - // 760 - ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon; + // 761 - ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon; Production { lhs: 271, production: &[ @@ -20738,42 +20745,42 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(270), ], }, - // 761 - ImportDeclarationOpt: ColonColon Star; + // 762 - ImportDeclarationOpt: ColonColon Star; Production { lhs: 272, production: &[ParseType::N(557), ParseType::N(89)], }, - // 762 - ImportDeclarationOpt: ; + // 763 - ImportDeclarationOpt: ; Production { lhs: 272, production: &[], }, - // 763 - ExportDeclaration: Export ExportDeclarationGroup Semicolon; + // 764 - ExportDeclaration: Export ExportDeclarationGroup Semicolon; Production { lhs: 160, production: &[ParseType::N(551), ParseType::N(161), ParseType::N(159)], }, - // 764 - ExportDeclarationGroup: Star; + // 765 - ExportDeclarationGroup: Star; Production { lhs: 161, production: &[ParseType::N(557)], }, - // 765 - ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */; + // 766 - ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */; Production { lhs: 161, production: &[ParseType::N(162), ParseType::N(543)], }, - // 766 - ExportDeclarationOpt: ColonColon Star; + // 767 - ExportDeclarationOpt: ColonColon Star; Production { lhs: 162, production: &[ParseType::N(557), ParseType::N(89)], }, - // 767 - ExportDeclarationOpt: ; + // 768 - ExportDeclarationOpt: ; Production { lhs: 162, production: &[], }, - // 768 - ModuleDeclaration: ModuleDeclarationOpt /* Option */ Module Identifier ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace; + // 769 - ModuleDeclaration: ModuleDeclarationOpt /* Option */ Module Identifier ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace; Production { lhs: 393, production: &[ @@ -20788,57 +20795,57 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(395), ], }, - // 769 - ModuleDeclarationList: ModuleGroup ModuleDeclarationList; + // 770 - ModuleDeclarationList: ModuleGroup ModuleDeclarationList; Production { lhs: 394, production: &[ParseType::N(394), ParseType::N(401)], }, - // 770 - ModuleDeclarationList: ; + // 771 - ModuleDeclarationList: ; Production { lhs: 394, production: &[], }, - // 771 - ModuleDeclarationOpt2: PortDeclaration; + // 772 - ModuleDeclarationOpt2: PortDeclaration; Production { lhs: 398, production: &[ParseType::N(478)], }, - // 772 - ModuleDeclarationOpt2: ; + // 773 - ModuleDeclarationOpt2: ; Production { lhs: 398, production: &[], }, - // 773 - ModuleDeclarationOpt1: WithParameter; + // 774 - ModuleDeclarationOpt1: WithParameter; Production { lhs: 397, production: &[ParseType::N(629)], }, - // 774 - ModuleDeclarationOpt1: ; + // 775 - ModuleDeclarationOpt1: ; Production { lhs: 397, production: &[], }, - // 775 - ModuleDeclarationOpt0: WithGenericParameter; + // 776 - ModuleDeclarationOpt0: WithGenericParameter; Production { lhs: 396, production: &[ParseType::N(623)], }, - // 776 - ModuleDeclarationOpt0: ; + // 777 - ModuleDeclarationOpt0: ; Production { lhs: 396, production: &[], }, - // 777 - ModuleDeclarationOpt: Pub; + // 778 - ModuleDeclarationOpt: Pub; Production { lhs: 395, production: &[ParseType::N(489)], }, - // 778 - ModuleDeclarationOpt: ; + // 779 - ModuleDeclarationOpt: ; Production { lhs: 395, production: &[], }, - // 779 - ModuleIfDeclaration: If Expression ModuleNamedBlock ModuleIfDeclarationList /* Vec */ ModuleIfDeclarationOpt /* Option */; + // 780 - ModuleIfDeclaration: If Expression ModuleNamedBlock ModuleIfDeclarationList /* Vec */ ModuleIfDeclarationOpt /* Option */; Production { lhs: 405, production: &[ @@ -20849,7 +20856,7 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(250), ], }, - // 780 - ModuleIfDeclarationList: Else If Expression ModuleOptionalNamedBlock ModuleIfDeclarationList; + // 781 - ModuleIfDeclarationList: Else If Expression ModuleOptionalNamedBlock ModuleIfDeclarationList; Production { lhs: 406, production: &[ @@ -20860,22 +20867,22 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(129), ], }, - // 781 - ModuleIfDeclarationList: ; + // 782 - ModuleIfDeclarationList: ; Production { lhs: 406, production: &[], }, - // 782 - ModuleIfDeclarationOpt: Else ModuleOptionalNamedBlock; + // 783 - ModuleIfDeclarationOpt: Else ModuleOptionalNamedBlock; Production { lhs: 407, production: &[ParseType::N(411), ParseType::N(129)], }, - // 783 - ModuleIfDeclarationOpt: ; + // 784 - ModuleIfDeclarationOpt: ; Production { lhs: 407, production: &[], }, - // 784 - ModuleForDeclaration: For Identifier In Range ModuleForDeclarationOpt /* Option */ ModuleNamedBlock; + // 785 - ModuleForDeclaration: For Identifier In Range ModuleForDeclarationOpt /* Option */ ModuleNamedBlock; Production { lhs: 399, production: &[ @@ -20887,17 +20894,17 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(215), ], }, - // 785 - ModuleForDeclarationOpt: Step AssignmentOperator Expression; + // 786 - ModuleForDeclarationOpt: Step AssignmentOperator Expression; Production { lhs: 400, production: &[ParseType::N(165), ParseType::N(42), ParseType::N(563)], }, - // 786 - ModuleForDeclarationOpt: ; + // 787 - ModuleForDeclarationOpt: ; Production { lhs: 400, production: &[], }, - // 787 - ModuleNamedBlock: Colon Identifier LBrace ModuleNamedBlockList /* Vec */ RBrace; + // 788 - ModuleNamedBlock: Colon Identifier LBrace ModuleNamedBlockList /* Vec */ RBrace; Production { lhs: 409, production: &[ @@ -20908,17 +20915,17 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(88), ], }, - // 788 - ModuleNamedBlockList: ModuleGroup ModuleNamedBlockList; + // 789 - ModuleNamedBlockList: ModuleGroup ModuleNamedBlockList; Production { lhs: 410, production: &[ParseType::N(410), ParseType::N(401)], }, - // 789 - ModuleNamedBlockList: ; + // 790 - ModuleNamedBlockList: ; Production { lhs: 410, production: &[], }, - // 790 - ModuleOptionalNamedBlock: ModuleOptionalNamedBlockOpt /* Option */ LBrace ModuleOptionalNamedBlockList /* Vec */ RBrace; + // 791 - ModuleOptionalNamedBlock: ModuleOptionalNamedBlockOpt /* Option */ LBrace ModuleOptionalNamedBlockList /* Vec */ RBrace; Production { lhs: 411, production: &[ @@ -20928,147 +20935,147 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(413), ], }, - // 791 - ModuleOptionalNamedBlockList: ModuleGroup ModuleOptionalNamedBlockList; + // 792 - ModuleOptionalNamedBlockList: ModuleGroup ModuleOptionalNamedBlockList; Production { lhs: 412, production: &[ParseType::N(412), ParseType::N(401)], }, - // 792 - ModuleOptionalNamedBlockList: ; + // 793 - ModuleOptionalNamedBlockList: ; Production { lhs: 412, production: &[], }, - // 793 - ModuleOptionalNamedBlockOpt: Colon Identifier; + // 794 - ModuleOptionalNamedBlockOpt: Colon Identifier; Production { lhs: 413, production: &[ParseType::N(245), ParseType::N(88)], }, - // 794 - ModuleOptionalNamedBlockOpt: ; + // 795 - ModuleOptionalNamedBlockOpt: ; Production { lhs: 413, production: &[], }, - // 795 - ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup; + // 796 - ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup; Production { lhs: 401, production: &[ParseType::N(402), ParseType::N(404)], }, - // 796 - ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace; + // 797 - ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace; Production { lhs: 402, production: &[ParseType::N(498), ParseType::N(403), ParseType::N(350)], }, - // 797 - ModuleGroupGroupList: ModuleGroup ModuleGroupGroupList; + // 798 - ModuleGroupGroupList: ModuleGroup ModuleGroupGroupList; Production { lhs: 403, production: &[ParseType::N(403), ParseType::N(401)], }, - // 798 - ModuleGroupGroupList: ; + // 799 - ModuleGroupGroupList: ; Production { lhs: 403, production: &[], }, - // 799 - ModuleGroupGroup: ModuleItem; + // 800 - ModuleGroupGroup: ModuleItem; Production { lhs: 402, production: &[ParseType::N(408)], }, - // 800 - ModuleGroupList: Attribute ModuleGroupList; + // 801 - ModuleGroupList: Attribute ModuleGroupList; Production { lhs: 404, production: &[ParseType::N(404), ParseType::N(45)], }, - // 801 - ModuleGroupList: ; + // 802 - ModuleGroupList: ; Production { lhs: 404, production: &[], }, - // 802 - ModuleItem: LetDeclaration; + // 803 - ModuleItem: LetDeclaration; Production { lhs: 408, production: &[ParseType::N(360)], }, - // 803 - ModuleItem: VarDeclaration; + // 804 - ModuleItem: VarDeclaration; Production { lhs: 408, production: &[ParseType::N(607)], }, - // 804 - ModuleItem: InstDeclaration; + // 805 - ModuleItem: InstDeclaration; Production { lhs: 408, production: &[ParseType::N(298)], }, - // 805 - ModuleItem: TypeDefDeclaration; + // 806 - ModuleItem: TypeDefDeclaration; Production { lhs: 408, production: &[ParseType::N(589)], }, - // 806 - ModuleItem: LocalDeclaration; + // 807 - ModuleItem: LocalDeclaration; Production { lhs: 408, production: &[ParseType::N(365)], }, - // 807 - ModuleItem: AlwaysFfDeclaration; + // 808 - ModuleItem: AlwaysFfDeclaration; Production { lhs: 408, production: &[ParseType::N(12)], }, - // 808 - ModuleItem: AlwaysCombDeclaration; + // 809 - ModuleItem: AlwaysCombDeclaration; Production { lhs: 408, production: &[ParseType::N(6)], }, - // 809 - ModuleItem: AssignDeclaration; + // 810 - ModuleItem: AssignDeclaration; Production { lhs: 408, production: &[ParseType::N(37)], }, - // 810 - ModuleItem: FunctionDeclaration; + // 811 - ModuleItem: FunctionDeclaration; Production { lhs: 408, production: &[ParseType::N(224)], }, - // 811 - ModuleItem: ModuleIfDeclaration; + // 812 - ModuleItem: ModuleIfDeclaration; Production { lhs: 408, production: &[ParseType::N(405)], }, - // 812 - ModuleItem: ModuleForDeclaration; + // 813 - ModuleItem: ModuleForDeclaration; Production { lhs: 408, production: &[ParseType::N(399)], }, - // 813 - ModuleItem: EnumDeclaration; + // 814 - ModuleItem: EnumDeclaration; Production { lhs: 408, production: &[ParseType::N(142)], }, - // 814 - ModuleItem: StructUnionDeclaration; + // 815 - ModuleItem: StructUnionDeclaration; Production { lhs: 408, production: &[ParseType::N(576)], }, - // 815 - ModuleItem: ModuleNamedBlock; + // 816 - ModuleItem: ModuleNamedBlock; Production { lhs: 408, production: &[ParseType::N(409)], }, - // 816 - ModuleItem: ImportDeclaration; + // 817 - ModuleItem: ImportDeclaration; Production { lhs: 408, production: &[ParseType::N(271)], }, - // 817 - ModuleItem: InitialDeclaration; + // 818 - ModuleItem: InitialDeclaration; Production { lhs: 408, production: &[ParseType::N(283)], }, - // 818 - ModuleItem: FinalDeclaration; + // 819 - ModuleItem: FinalDeclaration; Production { lhs: 408, production: &[ParseType::N(207)], }, - // 819 - InterfaceDeclaration: InterfaceDeclarationOpt /* Option */ Interface Identifier InterfaceDeclarationOpt0 /* Option */ InterfaceDeclarationOpt1 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace; + // 820 - InterfaceDeclaration: InterfaceDeclarationOpt /* Option */ Interface Identifier InterfaceDeclarationOpt0 /* Option */ InterfaceDeclarationOpt1 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace; Production { lhs: 325, production: &[ @@ -21082,47 +21089,47 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(327), ], }, - // 820 - InterfaceDeclarationList: InterfaceGroup InterfaceDeclarationList; + // 821 - InterfaceDeclarationList: InterfaceGroup InterfaceDeclarationList; Production { lhs: 326, production: &[ParseType::N(326), ParseType::N(332)], }, - // 821 - InterfaceDeclarationList: ; + // 822 - InterfaceDeclarationList: ; Production { lhs: 326, production: &[], }, - // 822 - InterfaceDeclarationOpt1: WithParameter; + // 823 - InterfaceDeclarationOpt1: WithParameter; Production { lhs: 329, production: &[ParseType::N(629)], }, - // 823 - InterfaceDeclarationOpt1: ; + // 824 - InterfaceDeclarationOpt1: ; Production { lhs: 329, production: &[], }, - // 824 - InterfaceDeclarationOpt0: WithGenericParameter; + // 825 - InterfaceDeclarationOpt0: WithGenericParameter; Production { lhs: 328, production: &[ParseType::N(623)], }, - // 825 - InterfaceDeclarationOpt0: ; + // 826 - InterfaceDeclarationOpt0: ; Production { lhs: 328, production: &[], }, - // 826 - InterfaceDeclarationOpt: Pub; + // 827 - InterfaceDeclarationOpt: Pub; Production { lhs: 327, production: &[ParseType::N(489)], }, - // 827 - InterfaceDeclarationOpt: ; + // 828 - InterfaceDeclarationOpt: ; Production { lhs: 327, production: &[], }, - // 828 - InterfaceIfDeclaration: If Expression InterfaceNamedBlock InterfaceIfDeclarationList /* Vec */ InterfaceIfDeclarationOpt /* Option */; + // 829 - InterfaceIfDeclaration: If Expression InterfaceNamedBlock InterfaceIfDeclarationList /* Vec */ InterfaceIfDeclarationOpt /* Option */; Production { lhs: 336, production: &[ @@ -21133,7 +21140,7 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(250), ], }, - // 829 - InterfaceIfDeclarationList: Else If Expression InterfaceOptionalNamedBlock InterfaceIfDeclarationList; + // 830 - InterfaceIfDeclarationList: Else If Expression InterfaceOptionalNamedBlock InterfaceIfDeclarationList; Production { lhs: 337, production: &[ @@ -21144,22 +21151,22 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(129), ], }, - // 830 - InterfaceIfDeclarationList: ; + // 831 - InterfaceIfDeclarationList: ; Production { lhs: 337, production: &[], }, - // 831 - InterfaceIfDeclarationOpt: Else InterfaceOptionalNamedBlock; + // 832 - InterfaceIfDeclarationOpt: Else InterfaceOptionalNamedBlock; Production { lhs: 338, production: &[ParseType::N(342), ParseType::N(129)], }, - // 832 - InterfaceIfDeclarationOpt: ; + // 833 - InterfaceIfDeclarationOpt: ; Production { lhs: 338, production: &[], }, - // 833 - InterfaceForDeclaration: For Identifier In Range InterfaceForDeclarationOpt /* Option */ InterfaceNamedBlock; + // 834 - InterfaceForDeclaration: For Identifier In Range InterfaceForDeclarationOpt /* Option */ InterfaceNamedBlock; Production { lhs: 330, production: &[ @@ -21171,17 +21178,17 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(215), ], }, - // 834 - InterfaceForDeclarationOpt: Step AssignmentOperator Expression; + // 835 - InterfaceForDeclarationOpt: Step AssignmentOperator Expression; Production { lhs: 331, production: &[ParseType::N(165), ParseType::N(42), ParseType::N(563)], }, - // 835 - InterfaceForDeclarationOpt: ; + // 836 - InterfaceForDeclarationOpt: ; Production { lhs: 331, production: &[], }, - // 836 - InterfaceNamedBlock: Colon Identifier LBrace InterfaceNamedBlockList /* Vec */ RBrace; + // 837 - InterfaceNamedBlock: Colon Identifier LBrace InterfaceNamedBlockList /* Vec */ RBrace; Production { lhs: 340, production: &[ @@ -21192,17 +21199,17 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(88), ], }, - // 837 - InterfaceNamedBlockList: InterfaceGroup InterfaceNamedBlockList; + // 838 - InterfaceNamedBlockList: InterfaceGroup InterfaceNamedBlockList; Production { lhs: 341, production: &[ParseType::N(341), ParseType::N(332)], }, - // 838 - InterfaceNamedBlockList: ; + // 839 - InterfaceNamedBlockList: ; Production { lhs: 341, production: &[], }, - // 839 - InterfaceOptionalNamedBlock: InterfaceOptionalNamedBlockOpt /* Option */ LBrace InterfaceOptionalNamedBlockList /* Vec */ RBrace; + // 840 - InterfaceOptionalNamedBlock: InterfaceOptionalNamedBlockOpt /* Option */ LBrace InterfaceOptionalNamedBlockList /* Vec */ RBrace; Production { lhs: 342, production: &[ @@ -21212,132 +21219,132 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(344), ], }, - // 840 - InterfaceOptionalNamedBlockList: InterfaceGroup InterfaceOptionalNamedBlockList; + // 841 - InterfaceOptionalNamedBlockList: InterfaceGroup InterfaceOptionalNamedBlockList; Production { lhs: 343, production: &[ParseType::N(343), ParseType::N(332)], }, - // 841 - InterfaceOptionalNamedBlockList: ; + // 842 - InterfaceOptionalNamedBlockList: ; Production { lhs: 343, production: &[], }, - // 842 - InterfaceOptionalNamedBlockOpt: Colon Identifier; + // 843 - InterfaceOptionalNamedBlockOpt: Colon Identifier; Production { lhs: 344, production: &[ParseType::N(245), ParseType::N(88)], }, - // 843 - InterfaceOptionalNamedBlockOpt: ; + // 844 - InterfaceOptionalNamedBlockOpt: ; Production { lhs: 344, production: &[], }, - // 844 - InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup; + // 845 - InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup; Production { lhs: 332, production: &[ParseType::N(333), ParseType::N(335)], }, - // 845 - InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace; + // 846 - InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace; Production { lhs: 333, production: &[ParseType::N(498), ParseType::N(334), ParseType::N(350)], }, - // 846 - InterfaceGroupGroupList: InterfaceGroup InterfaceGroupGroupList; + // 847 - InterfaceGroupGroupList: InterfaceGroup InterfaceGroupGroupList; Production { lhs: 334, production: &[ParseType::N(334), ParseType::N(332)], }, - // 847 - InterfaceGroupGroupList: ; + // 848 - InterfaceGroupGroupList: ; Production { lhs: 334, production: &[], }, - // 848 - InterfaceGroupGroup: InterfaceItem; + // 849 - InterfaceGroupGroup: InterfaceItem; Production { lhs: 333, production: &[ParseType::N(339)], }, - // 849 - InterfaceGroupList: Attribute InterfaceGroupList; + // 850 - InterfaceGroupList: Attribute InterfaceGroupList; Production { lhs: 335, production: &[ParseType::N(335), ParseType::N(45)], }, - // 850 - InterfaceGroupList: ; + // 851 - InterfaceGroupList: ; Production { lhs: 335, production: &[], }, - // 851 - InterfaceItem: LetDeclaration; + // 852 - InterfaceItem: LetDeclaration; Production { lhs: 339, production: &[ParseType::N(360)], }, - // 852 - InterfaceItem: VarDeclaration; + // 853 - InterfaceItem: VarDeclaration; Production { lhs: 339, production: &[ParseType::N(607)], }, - // 853 - InterfaceItem: LocalDeclaration; + // 854 - InterfaceItem: LocalDeclaration; Production { lhs: 339, production: &[ParseType::N(365)], }, - // 854 - InterfaceItem: ModportDeclaration; + // 855 - InterfaceItem: ModportDeclaration; Production { lhs: 339, production: &[ParseType::N(382)], }, - // 855 - InterfaceItem: InterfaceIfDeclaration; + // 856 - InterfaceItem: InterfaceIfDeclaration; Production { lhs: 339, production: &[ParseType::N(336)], }, - // 856 - InterfaceItem: InterfaceForDeclaration; + // 857 - InterfaceItem: InterfaceForDeclaration; Production { lhs: 339, production: &[ParseType::N(330)], }, - // 857 - InterfaceItem: TypeDefDeclaration; + // 858 - InterfaceItem: TypeDefDeclaration; Production { lhs: 339, production: &[ParseType::N(589)], }, - // 858 - InterfaceItem: EnumDeclaration; + // 859 - InterfaceItem: EnumDeclaration; Production { lhs: 339, production: &[ParseType::N(142)], }, - // 859 - InterfaceItem: StructUnionDeclaration; + // 860 - InterfaceItem: StructUnionDeclaration; Production { lhs: 339, production: &[ParseType::N(576)], }, - // 860 - InterfaceItem: InterfaceNamedBlock; + // 861 - InterfaceItem: InterfaceNamedBlock; Production { lhs: 339, production: &[ParseType::N(340)], }, - // 861 - InterfaceItem: FunctionDeclaration; + // 862 - InterfaceItem: FunctionDeclaration; Production { lhs: 339, production: &[ParseType::N(224)], }, - // 862 - InterfaceItem: ImportDeclaration; + // 863 - InterfaceItem: ImportDeclaration; Production { lhs: 339, production: &[ParseType::N(271)], }, - // 863 - InterfaceItem: InitialDeclaration; + // 864 - InterfaceItem: InitialDeclaration; Production { lhs: 339, production: &[ParseType::N(283)], }, - // 864 - InterfaceItem: FinalDeclaration; + // 865 - InterfaceItem: FinalDeclaration; Production { lhs: 339, production: &[ParseType::N(207)], }, - // 865 - PackageDeclaration: PackageDeclarationOpt /* Option */ Package Identifier PackageDeclarationOpt0 /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace; + // 866 - PackageDeclaration: PackageDeclarationOpt /* Option */ Package Identifier PackageDeclarationOpt0 /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace; Production { lhs: 461, production: &[ @@ -21350,122 +21357,122 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(463), ], }, - // 866 - PackageDeclarationList: PackageGroup PackageDeclarationList; + // 867 - PackageDeclarationList: PackageGroup PackageDeclarationList; Production { lhs: 462, production: &[ParseType::N(462), ParseType::N(465)], }, - // 867 - PackageDeclarationList: ; + // 868 - PackageDeclarationList: ; Production { lhs: 462, production: &[], }, - // 868 - PackageDeclarationOpt0: WithGenericParameter; + // 869 - PackageDeclarationOpt0: WithGenericParameter; Production { lhs: 464, production: &[ParseType::N(623)], }, - // 869 - PackageDeclarationOpt0: ; + // 870 - PackageDeclarationOpt0: ; Production { lhs: 464, production: &[], }, - // 870 - PackageDeclarationOpt: Pub; + // 871 - PackageDeclarationOpt: Pub; Production { lhs: 463, production: &[ParseType::N(489)], }, - // 871 - PackageDeclarationOpt: ; + // 872 - PackageDeclarationOpt: ; Production { lhs: 463, production: &[], }, - // 872 - PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup; + // 873 - PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup; Production { lhs: 465, production: &[ParseType::N(466), ParseType::N(468)], }, - // 873 - PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace; + // 874 - PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace; Production { lhs: 466, production: &[ParseType::N(498), ParseType::N(467), ParseType::N(350)], }, - // 874 - PackageGroupGroupList: PackageGroup PackageGroupGroupList; + // 875 - PackageGroupGroupList: PackageGroup PackageGroupGroupList; Production { lhs: 467, production: &[ParseType::N(467), ParseType::N(465)], }, - // 875 - PackageGroupGroupList: ; + // 876 - PackageGroupGroupList: ; Production { lhs: 467, production: &[], }, - // 876 - PackageGroupGroup: PackageItem; + // 877 - PackageGroupGroup: PackageItem; Production { lhs: 466, production: &[ParseType::N(469)], }, - // 877 - PackageGroupList: Attribute PackageGroupList; + // 878 - PackageGroupList: Attribute PackageGroupList; Production { lhs: 468, production: &[ParseType::N(468), ParseType::N(45)], }, - // 878 - PackageGroupList: ; + // 879 - PackageGroupList: ; Production { lhs: 468, production: &[], }, - // 879 - PackageItem: VarDeclaration; + // 880 - PackageItem: VarDeclaration; Production { lhs: 469, production: &[ParseType::N(607)], }, - // 880 - PackageItem: LocalDeclaration; + // 881 - PackageItem: LocalDeclaration; Production { lhs: 469, production: &[ParseType::N(365)], }, - // 881 - PackageItem: TypeDefDeclaration; + // 882 - PackageItem: TypeDefDeclaration; Production { lhs: 469, production: &[ParseType::N(589)], }, - // 882 - PackageItem: EnumDeclaration; + // 883 - PackageItem: EnumDeclaration; Production { lhs: 469, production: &[ParseType::N(142)], }, - // 883 - PackageItem: StructUnionDeclaration; + // 884 - PackageItem: StructUnionDeclaration; Production { lhs: 469, production: &[ParseType::N(576)], }, - // 884 - PackageItem: FunctionDeclaration; + // 885 - PackageItem: FunctionDeclaration; Production { lhs: 469, production: &[ParseType::N(224)], }, - // 885 - PackageItem: ImportDeclaration; + // 886 - PackageItem: ImportDeclaration; Production { lhs: 469, production: &[ParseType::N(271)], }, - // 886 - PackageItem: ExportDeclaration; + // 887 - PackageItem: ExportDeclaration; Production { lhs: 469, production: &[ParseType::N(160)], }, - // 887 - PackageItem: InitialDeclaration; + // 888 - PackageItem: InitialDeclaration; Production { lhs: 469, production: &[ParseType::N(283)], }, - // 888 - PackageItem: FinalDeclaration; + // 889 - PackageItem: FinalDeclaration; Production { lhs: 469, production: &[ParseType::N(207)], }, - // 889 - EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent; + // 890 - EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent; Production { lhs: 136, production: &[ @@ -21477,12 +21484,12 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(132), ], }, - // 890 - EmbedContent: EmbedContentToken : crate::veryl_token::VerylToken ; + // 891 - EmbedContent: EmbedContentToken : crate::veryl_token::VerylToken ; Production { lhs: 133, production: &[ParseType::N(134)], }, - // 891 - EmbedContentToken: LBraceTerm Push(1) LBraceTerm LBraceTerm EmbedContentTokenList /* Vec */ RBraceTerm RBraceTerm RBraceTerm Pop Comments; + // 892 - EmbedContentToken: LBraceTerm Push(1) LBraceTerm LBraceTerm EmbedContentTokenList /* Vec */ RBraceTerm RBraceTerm RBraceTerm Pop Comments; Production { lhs: 134, production: &[ @@ -21498,37 +21505,37 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(351), ], }, - // 892 - EmbedContentTokenList: EmbedItem EmbedContentTokenList; + // 893 - EmbedContentTokenList: EmbedItem EmbedContentTokenList; Production { lhs: 135, production: &[ParseType::N(135), ParseType::N(137)], }, - // 893 - EmbedContentTokenList: ; + // 894 - EmbedContentTokenList: ; Production { lhs: 135, production: &[], }, - // 894 - EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm; + // 895 - EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm; Production { lhs: 137, production: &[ParseType::N(499), ParseType::N(138), ParseType::N(351)], }, - // 895 - EmbedItemList: EmbedItem EmbedItemList; + // 896 - EmbedItemList: EmbedItem EmbedItemList; Production { lhs: 138, production: &[ParseType::N(138), ParseType::N(137)], }, - // 896 - EmbedItemList: ; + // 897 - EmbedItemList: ; Production { lhs: 138, production: &[], }, - // 897 - EmbedItem: AnyTerm; + // 898 - EmbedItem: AnyTerm; Production { lhs: 137, production: &[ParseType::N(18)], }, - // 898 - IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon; + // 899 - IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon; Production { lhs: 279, production: &[ @@ -21541,82 +21548,82 @@ pub const PRODUCTIONS: &[Production; 915] = &[ ParseType::N(278), ], }, - // 899 - DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup; + // 900 - DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup; Production { lhs: 111, production: &[ParseType::N(112), ParseType::N(114)], }, - // 900 - DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace; + // 901 - DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace; Production { lhs: 112, production: &[ParseType::N(498), ParseType::N(113), ParseType::N(350)], }, - // 901 - DescriptionGroupGroupList: DescriptionGroup DescriptionGroupGroupList; + // 902 - DescriptionGroupGroupList: DescriptionGroup DescriptionGroupGroupList; Production { lhs: 113, production: &[ParseType::N(113), ParseType::N(111)], }, - // 902 - DescriptionGroupGroupList: ; + // 903 - DescriptionGroupGroupList: ; Production { lhs: 113, production: &[], }, - // 903 - DescriptionGroupGroup: DescriptionItem; + // 904 - DescriptionGroupGroup: DescriptionItem; Production { lhs: 112, production: &[ParseType::N(115)], }, - // 904 - DescriptionGroupList: Attribute DescriptionGroupList; + // 905 - DescriptionGroupList: Attribute DescriptionGroupList; Production { lhs: 114, production: &[ParseType::N(114), ParseType::N(45)], }, - // 905 - DescriptionGroupList: ; + // 906 - DescriptionGroupList: ; Production { lhs: 114, production: &[], }, - // 906 - DescriptionItem: ModuleDeclaration; + // 907 - DescriptionItem: ModuleDeclaration; Production { lhs: 115, production: &[ParseType::N(393)], }, - // 907 - DescriptionItem: InterfaceDeclaration; + // 908 - DescriptionItem: InterfaceDeclaration; Production { lhs: 115, production: &[ParseType::N(325)], }, - // 908 - DescriptionItem: PackageDeclaration; + // 909 - DescriptionItem: PackageDeclaration; Production { lhs: 115, production: &[ParseType::N(461)], }, - // 909 - DescriptionItem: ImportDeclaration; + // 910 - DescriptionItem: ImportDeclaration; Production { lhs: 115, production: &[ParseType::N(271)], }, - // 910 - DescriptionItem: EmbedDeclaration; + // 911 - DescriptionItem: EmbedDeclaration; Production { lhs: 115, production: &[ParseType::N(136)], }, - // 911 - DescriptionItem: IncludeDeclaration; + // 912 - DescriptionItem: IncludeDeclaration; Production { lhs: 115, production: &[ParseType::N(279)], }, - // 912 - Veryl: Start VerylList /* Vec */; + // 913 - Veryl: Start VerylList /* Vec */; Production { lhs: 613, production: &[ParseType::N(614), ParseType::N(560)], }, - // 913 - VerylList: DescriptionGroup VerylList; + // 914 - VerylList: DescriptionGroup VerylList; Production { lhs: 614, production: &[ParseType::N(614), ParseType::N(111)], }, - // 914 - VerylList: ; + // 915 - VerylList: ; Production { lhs: 614, production: &[], diff --git a/crates/parser/src/veryl_walker.rs b/crates/parser/src/veryl_walker.rs index 5bf0859d..d1d3c080 100644 --- a/crates/parser/src/veryl_walker.rs +++ b/crates/parser/src/veryl_walker.rs @@ -2315,6 +2315,7 @@ pub trait VerylWalker { Direction::Inout(x) => self.inout(&x.inout), Direction::Ref(x) => self.r#ref(&x.r#ref), Direction::Modport(x) => self.modport(&x.modport), + Direction::Import(x) => self.import(&x.import), }; after!(self, direction, arg); } diff --git a/crates/parser/veryl.par b/crates/parser/veryl.par index 5c3dab86..652f671c 100644 --- a/crates/parser/veryl.par +++ b/crates/parser/veryl.par @@ -682,6 +682,7 @@ Direction: Input | Inout | Ref | Modport + | Import ; // ---------------------------------------------------------------------------- diff --git a/testcases/sv/39_modport.sv b/testcases/sv/39_modport.sv index 508f0f96..6cac6067 100644 --- a/testcases/sv/39_modport.sv +++ b/testcases/sv/39_modport.sv @@ -2,17 +2,24 @@ module veryl_testcase_Module39 ( veryl_testcase_Interface39.master mst, veryl_testcase_Interface39.slave slv ); - always_comb mst.a = slv.a; + logic a ; + always_comb mst.a = a; + always_comb a = slv.get_a(); endmodule interface veryl_testcase_Interface39; logic a; + function automatic logic get_a() ; + return a; + endfunction + modport master ( output a ); modport slave ( - input a + input a , + import get_a ); endinterface diff --git a/testcases/veryl/39_modport.veryl b/testcases/veryl/39_modport.veryl index 71ad8dea..b69c5955 100644 --- a/testcases/veryl/39_modport.veryl +++ b/testcases/veryl/39_modport.veryl @@ -2,17 +2,24 @@ module Module39 ( mst: modport Interface39::master, slv: modport Interface39::slave , ) { - assign mst.a = slv.a; + var a : logic; + assign mst.a = a; + assign a = slv.get_a(); } interface Interface39 { var a: logic; + function get_a () -> logic { + return a; + } + modport master { a: output, } modport slave { - a: input, + a : input , + get_a: import, } }