| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // https://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| //------------------------------------------------------------------------------ |
| // <auto-generated> |
| // This code was generated by a tool. |
| // ANTLR Version: 4.13.2 |
| // |
| // Changes to this file may cause incorrect behavior and will be lost if |
| // the code is regenerated. |
| // </auto-generated> |
| //------------------------------------------------------------------------------ |
| |
| // Generated from code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4 by ANTLR 4.13.2 |
| |
| // Unreachable code detected |
| #pragma warning disable 0162 |
| // The variable '...' is assigned but its value is never used |
| #pragma warning disable 0219 |
| // Missing XML comment for publicly visible type or member '...' |
| #pragma warning disable 1591 |
| // Ambiguous reference in cref attribute |
| #pragma warning disable 419 |
| |
| namespace org.apache.plc4net.tools.codegen.grammar { |
| using System; |
| using System.IO; |
| using System.Text; |
| using System.Diagnostics; |
| using System.Collections.Generic; |
| using Antlr4.Runtime; |
| using Antlr4.Runtime.Atn; |
| using Antlr4.Runtime.Misc; |
| using Antlr4.Runtime.Tree; |
| using DFA = Antlr4.Runtime.Dfa.DFA; |
| |
| [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.2")] |
| [System.CLSCompliant(false)] |
| public partial class MSpecParser : Parser { |
| protected static DFA[] decisionToDFA; |
| protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); |
| public const int |
| T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, |
| T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, |
| T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, |
| TICK=25, LBRACKET=26, RBRACKET=27, LRBRACKET=28, RRBRACKET=29, LCBRACKET=30, |
| RCBRACKET=31, ASTERISK=32, CONSTANTS=33, GLOBALS=34, CONTEXT=35, TYPE=36, |
| DISCRIMINATEDTYPE=37, DATAIO=38, ENUM=39, BATCHSET=40, ABSTRACT=41, ARRAY=42, |
| ASSERT=43, CHECKSUM=44, CONST=45, DISCRIMINATOR=46, IMPLICIT=47, MANUALARRAY=48, |
| MANUAL=49, OPTIONAL=50, PADDING=51, PEEK=52, RESERVED=53, SIMPLE=54, STATE=55, |
| TYPESWITCH=56, UNKNOWN=57, VALIDATION=58, VIRTUAL=59, BIT=60, BYTE=61, |
| INT=62, VINT=63, UINT=64, VUINT=65, FLOAT=66, UFLOAT=67, STRING=68, VSTRING=69, |
| TIME=70, DATE=71, DATETIME=72, SHOULD_FAIL=73, ARRAY_LOOP_TYPE=74, INTEGER_LITERAL=75, |
| FLOAT_LITERAL=76, HEX_LITERAL=77, BOOLEAN_LITERAL=78, STRING_LITERAL=79, |
| IDENTIFIER_LITERAL=80, LINE_COMMENT=81, BLOCK_COMMENT=82, EmptyLine=83, |
| NEWLINE=84, WS=85; |
| public const int |
| RULE_file = 0, RULE_contantsDefinition = 1, RULE_globalsDefinition = 2, |
| RULE_contextDefintion = 3, RULE_complexTypeDefinition = 4, RULE_complexType = 5, |
| RULE_fieldDefinition = 6, RULE_batchSetDefinition = 7, RULE_dataIoDefinition = 8, |
| RULE_field = 9, RULE_abstractField = 10, RULE_arrayField = 11, RULE_assertField = 12, |
| RULE_checksumField = 13, RULE_constField = 14, RULE_discriminatorField = 15, |
| RULE_enumField = 16, RULE_implicitField = 17, RULE_manualArrayField = 18, |
| RULE_manualField = 19, RULE_optionalField = 20, RULE_paddingField = 21, |
| RULE_peekField = 22, RULE_reservedField = 23, RULE_simpleField = 24, RULE_stateField = 25, |
| RULE_typeSwitchField = 26, RULE_unknownField = 27, RULE_validationField = 28, |
| RULE_virtualField = 29, RULE_enumValueDefinition = 30, RULE_typeReference = 31, |
| RULE_caseStatement = 32, RULE_dataType = 33, RULE_attribute = 34, RULE_attributeList = 35, |
| RULE_argument = 36, RULE_argumentList = 37, RULE_expression = 38, RULE_multipleExpressions = 39, |
| RULE_multipleVariableLiterals = 40, RULE_variableLiteral = 41, RULE_innerExpression = 42, |
| RULE_valueLiteral = 43, RULE_idExpression = 44, RULE_binaryOperator = 45; |
| public static readonly string[] ruleNames = { |
| "file", "contantsDefinition", "globalsDefinition", "contextDefintion", |
| "complexTypeDefinition", "complexType", "fieldDefinition", "batchSetDefinition", |
| "dataIoDefinition", "field", "abstractField", "arrayField", "assertField", |
| "checksumField", "constField", "discriminatorField", "enumField", "implicitField", |
| "manualArrayField", "manualField", "optionalField", "paddingField", "peekField", |
| "reservedField", "simpleField", "stateField", "typeSwitchField", "unknownField", |
| "validationField", "virtualField", "enumValueDefinition", "typeReference", |
| "caseStatement", "dataType", "attribute", "attributeList", "argument", |
| "argumentList", "expression", "multipleExpressions", "multipleVariableLiterals", |
| "variableLiteral", "innerExpression", "valueLiteral", "idExpression", |
| "binaryOperator" |
| }; |
| |
| private static readonly string[] _LiteralNames = { |
| null, "'='", "','", "'.'", "'?'", "':'", "'\"'", "'!'", "'+'", "'-'", |
| "'/'", "'^'", "'=='", "'!='", "'>>'", "'<<'", "'>'", "'<'", "'>='", "'<='", |
| "'&&'", "'||'", "'&'", "'|'", "'%'", "'''", "'['", "']'", "'('", "')'", |
| "'{'", "'}'", "'*'", "'constants'", "'globals'", "'context'", "'type'", |
| "'discriminatedType'", "'dataIo'", "'enum'", "'batchSet'", "'abstract'", |
| "'array'", "'assert'", "'checksum'", "'const'", "'discriminator'", "'implicit'", |
| "'manualArray'", "'manual'", "'optional'", "'padding'", "'peek'", "'reserved'", |
| "'simple'", "'state'", "'typeSwitch'", "'unknown'", "'validation'", "'virtual'", |
| "'bit'", "'byte'", "'int'", "'vint'", "'uint'", "'vuint'", "'float'", |
| "'ufloat'", "'string'", "'vstring'", "'time'", "'date'", "'dateTime'", |
| "'shouldFail'" |
| }; |
| private static readonly string[] _SymbolicNames = { |
| null, null, null, null, null, null, null, null, null, null, null, null, |
| null, null, null, null, null, null, null, null, null, null, null, null, |
| null, "TICK", "LBRACKET", "RBRACKET", "LRBRACKET", "RRBRACKET", "LCBRACKET", |
| "RCBRACKET", "ASTERISK", "CONSTANTS", "GLOBALS", "CONTEXT", "TYPE", "DISCRIMINATEDTYPE", |
| "DATAIO", "ENUM", "BATCHSET", "ABSTRACT", "ARRAY", "ASSERT", "CHECKSUM", |
| "CONST", "DISCRIMINATOR", "IMPLICIT", "MANUALARRAY", "MANUAL", "OPTIONAL", |
| "PADDING", "PEEK", "RESERVED", "SIMPLE", "STATE", "TYPESWITCH", "UNKNOWN", |
| "VALIDATION", "VIRTUAL", "BIT", "BYTE", "INT", "VINT", "UINT", "VUINT", |
| "FLOAT", "UFLOAT", "STRING", "VSTRING", "TIME", "DATE", "DATETIME", "SHOULD_FAIL", |
| "ARRAY_LOOP_TYPE", "INTEGER_LITERAL", "FLOAT_LITERAL", "HEX_LITERAL", |
| "BOOLEAN_LITERAL", "STRING_LITERAL", "IDENTIFIER_LITERAL", "LINE_COMMENT", |
| "BLOCK_COMMENT", "EmptyLine", "NEWLINE", "WS" |
| }; |
| public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); |
| |
| [NotNull] |
| public override IVocabulary Vocabulary |
| { |
| get |
| { |
| return DefaultVocabulary; |
| } |
| } |
| |
| public override string GrammarFileName { get { return "MSpec.g4"; } } |
| |
| public override string[] RuleNames { get { return ruleNames; } } |
| |
| public override int[] SerializedAtn { get { return _serializedATN; } } |
| |
| static MSpecParser() { |
| decisionToDFA = new DFA[_ATN.NumberOfDecisions]; |
| for (int i = 0; i < _ATN.NumberOfDecisions; i++) { |
| decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); |
| } |
| } |
| |
| public MSpecParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } |
| |
| public MSpecParser(ITokenStream input, TextWriter output, TextWriter errorOutput) |
| : base(input, output, errorOutput) |
| { |
| Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); |
| } |
| |
| public partial class FileContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Eof() { return GetToken(MSpecParser.Eof, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ContantsDefinitionContext contantsDefinition() { |
| return GetRuleContext<ContantsDefinitionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public GlobalsDefinitionContext globalsDefinition() { |
| return GetRuleContext<GlobalsDefinitionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ContextDefintionContext contextDefintion() { |
| return GetRuleContext<ContextDefintionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ComplexTypeDefinitionContext[] complexTypeDefinition() { |
| return GetRuleContexts<ComplexTypeDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ComplexTypeDefinitionContext complexTypeDefinition(int i) { |
| return GetRuleContext<ComplexTypeDefinitionContext>(i); |
| } |
| public FileContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_file; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterFile(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitFile(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public FileContext file() { |
| FileContext _localctx = new FileContext(Context, State); |
| EnterRule(_localctx, 0, RULE_file); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 93; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,0,Context) ) { |
| case 1: |
| { |
| State = 92; |
| contantsDefinition(); |
| } |
| break; |
| } |
| State = 96; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,1,Context) ) { |
| case 1: |
| { |
| State = 95; |
| globalsDefinition(); |
| } |
| break; |
| } |
| State = 99; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) { |
| case 1: |
| { |
| State = 98; |
| contextDefintion(); |
| } |
| break; |
| } |
| State = 104; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| { |
| State = 101; |
| complexTypeDefinition(); |
| } |
| } |
| State = 106; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| State = 107; |
| Match(Eof); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ContantsDefinitionContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LBRACKET() { return GetTokens(MSpecParser.LBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET(int i) { |
| return GetToken(MSpecParser.LBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONSTANTS() { return GetToken(MSpecParser.CONSTANTS, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] RBRACKET() { return GetTokens(MSpecParser.RBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET(int i) { |
| return GetToken(MSpecParser.RBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ConstFieldContext[] constField() { |
| return GetRuleContexts<ConstFieldContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ConstFieldContext constField(int i) { |
| return GetRuleContext<ConstFieldContext>(i); |
| } |
| public ContantsDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_contantsDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterContantsDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitContantsDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ContantsDefinitionContext contantsDefinition() { |
| ContantsDefinitionContext _localctx = new ContantsDefinitionContext(Context, State); |
| EnterRule(_localctx, 2, RULE_contantsDefinition); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 109; |
| Match(LBRACKET); |
| State = 110; |
| Match(CONSTANTS); |
| State = 117; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| { |
| State = 111; |
| Match(LBRACKET); |
| State = 112; |
| constField(); |
| State = 113; |
| Match(RBRACKET); |
| } |
| } |
| State = 119; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| State = 120; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class GlobalsDefinitionContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET() { return GetToken(MSpecParser.LBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GLOBALS() { return GetToken(MSpecParser.GLOBALS, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext[] fieldDefinition() { |
| return GetRuleContexts<FieldDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext fieldDefinition(int i) { |
| return GetRuleContext<FieldDefinitionContext>(i); |
| } |
| public GlobalsDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_globalsDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterGlobalsDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitGlobalsDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public GlobalsDefinitionContext globalsDefinition() { |
| GlobalsDefinitionContext _localctx = new GlobalsDefinitionContext(Context, State); |
| EnterRule(_localctx, 4, RULE_globalsDefinition); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 122; |
| Match(LBRACKET); |
| State = 123; |
| Match(GLOBALS); |
| State = 127; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| { |
| State = 124; |
| fieldDefinition(); |
| } |
| } |
| State = 129; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| State = 130; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ContextDefintionContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET() { return GetToken(MSpecParser.LBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONTEXT() { return GetToken(MSpecParser.CONTEXT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext[] fieldDefinition() { |
| return GetRuleContexts<FieldDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext fieldDefinition(int i) { |
| return GetRuleContext<FieldDefinitionContext>(i); |
| } |
| public ContextDefintionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_contextDefintion; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterContextDefintion(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitContextDefintion(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ContextDefintionContext contextDefintion() { |
| ContextDefintionContext _localctx = new ContextDefintionContext(Context, State); |
| EnterRule(_localctx, 6, RULE_contextDefintion); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 132; |
| Match(LBRACKET); |
| State = 133; |
| Match(CONTEXT); |
| State = 137; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| { |
| State = 134; |
| fieldDefinition(); |
| } |
| } |
| State = 139; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| State = 140; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ComplexTypeDefinitionContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET() { return GetToken(MSpecParser.LBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ComplexTypeContext complexType() { |
| return GetRuleContext<ComplexTypeContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| public ComplexTypeDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_complexTypeDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterComplexTypeDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitComplexTypeDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ComplexTypeDefinitionContext complexTypeDefinition() { |
| ComplexTypeDefinitionContext _localctx = new ComplexTypeDefinitionContext(Context, State); |
| EnterRule(_localctx, 8, RULE_complexTypeDefinition); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 142; |
| Match(LBRACKET); |
| State = 143; |
| complexType(); |
| State = 144; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ComplexTypeContext : ParserRuleContext { |
| public IdExpressionContext name; |
| public ArgumentListContext @params; |
| public AttributeListContext attributes; |
| public DataTypeContext type; |
| public EnumValueDefinitionContext enumValues; |
| public DataIoDefinitionContext dataIoTypeSwitch; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPE() { return GetToken(MSpecParser.TYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public AttributeListContext attributeList() { |
| return GetRuleContext<AttributeListContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LRBRACKET() { return GetToken(MSpecParser.LRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RRBRACKET() { return GetToken(MSpecParser.RRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext[] fieldDefinition() { |
| return GetRuleContexts<FieldDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext fieldDefinition(int i) { |
| return GetRuleContext<FieldDefinitionContext>(i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public BatchSetDefinitionContext[] batchSetDefinition() { |
| return GetRuleContexts<BatchSetDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public BatchSetDefinitionContext batchSetDefinition(int i) { |
| return GetRuleContext<BatchSetDefinitionContext>(i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ArgumentListContext argumentList() { |
| return GetRuleContext<ArgumentListContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DISCRIMINATEDTYPE() { return GetToken(MSpecParser.DISCRIMINATEDTYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENUM() { return GetToken(MSpecParser.ENUM, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public EnumValueDefinitionContext[] enumValueDefinition() { |
| return GetRuleContexts<EnumValueDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public EnumValueDefinitionContext enumValueDefinition(int i) { |
| return GetRuleContext<EnumValueDefinitionContext>(i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATAIO() { return GetToken(MSpecParser.DATAIO, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataIoDefinitionContext dataIoDefinition() { |
| return GetRuleContext<DataIoDefinitionContext>(0); |
| } |
| public ComplexTypeContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_complexType; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterComplexType(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitComplexType(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ComplexTypeContext complexType() { |
| ComplexTypeContext _localctx = new ComplexTypeContext(Context, State); |
| EnterRule(_localctx, 10, RULE_complexType); |
| int _la; |
| try { |
| State = 207; |
| ErrorHandler.Sync(this); |
| switch (TokenStream.LA(1)) { |
| case TYPE: |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 146; |
| Match(TYPE); |
| State = 147; |
| _localctx.name = idExpression(); |
| State = 152; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LRBRACKET) { |
| { |
| State = 148; |
| Match(LRBRACKET); |
| State = 149; |
| _localctx.@params = argumentList(); |
| State = 150; |
| Match(RRBRACKET); |
| } |
| } |
| |
| State = 154; |
| _localctx.attributes = attributeList(); |
| State = 159; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| State = 157; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,8,Context) ) { |
| case 1: |
| { |
| State = 155; |
| fieldDefinition(); |
| } |
| break; |
| case 2: |
| { |
| State = 156; |
| batchSetDefinition(); |
| } |
| break; |
| } |
| } |
| State = 161; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| break; |
| case DISCRIMINATEDTYPE: |
| EnterOuterAlt(_localctx, 2); |
| { |
| State = 162; |
| Match(DISCRIMINATEDTYPE); |
| State = 163; |
| _localctx.name = idExpression(); |
| State = 168; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LRBRACKET) { |
| { |
| State = 164; |
| Match(LRBRACKET); |
| State = 165; |
| _localctx.@params = argumentList(); |
| State = 166; |
| Match(RRBRACKET); |
| } |
| } |
| |
| State = 170; |
| _localctx.attributes = attributeList(); |
| State = 175; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| State = 173; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,11,Context) ) { |
| case 1: |
| { |
| State = 171; |
| fieldDefinition(); |
| } |
| break; |
| case 2: |
| { |
| State = 172; |
| batchSetDefinition(); |
| } |
| break; |
| } |
| } |
| State = 177; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| break; |
| case ENUM: |
| EnterOuterAlt(_localctx, 3); |
| { |
| State = 178; |
| Match(ENUM); |
| State = 180; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) { |
| case 1: |
| { |
| State = 179; |
| _localctx.type = dataType(); |
| } |
| break; |
| } |
| State = 182; |
| _localctx.name = idExpression(); |
| State = 187; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LRBRACKET) { |
| { |
| State = 183; |
| Match(LRBRACKET); |
| State = 184; |
| _localctx.@params = argumentList(); |
| State = 185; |
| Match(RRBRACKET); |
| } |
| } |
| |
| State = 189; |
| _localctx.attributes = attributeList(); |
| State = 193; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| { |
| State = 190; |
| _localctx.enumValues = enumValueDefinition(); |
| } |
| } |
| State = 195; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| break; |
| case DATAIO: |
| EnterOuterAlt(_localctx, 4); |
| { |
| State = 196; |
| Match(DATAIO); |
| State = 197; |
| _localctx.name = idExpression(); |
| State = 202; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LRBRACKET) { |
| { |
| State = 198; |
| Match(LRBRACKET); |
| State = 199; |
| _localctx.@params = argumentList(); |
| State = 200; |
| Match(RRBRACKET); |
| } |
| } |
| |
| { |
| State = 204; |
| _localctx.attributes = attributeList(); |
| } |
| State = 205; |
| _localctx.dataIoTypeSwitch = dataIoDefinition(); |
| } |
| break; |
| default: |
| throw new NoViableAltException(this); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class FieldDefinitionContext : ParserRuleContext { |
| public AttributeListContext attributes; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET() { return GetToken(MSpecParser.LBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldContext field() { |
| return GetRuleContext<FieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public AttributeListContext attributeList() { |
| return GetRuleContext<AttributeListContext>(0); |
| } |
| public FieldDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_fieldDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterFieldDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitFieldDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public FieldDefinitionContext fieldDefinition() { |
| FieldDefinitionContext _localctx = new FieldDefinitionContext(Context, State); |
| EnterRule(_localctx, 12, RULE_fieldDefinition); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 209; |
| Match(LBRACKET); |
| State = 210; |
| field(); |
| { |
| State = 211; |
| _localctx.attributes = attributeList(); |
| } |
| State = 212; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class BatchSetDefinitionContext : ParserRuleContext { |
| public AttributeListContext attributes; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET() { return GetToken(MSpecParser.LBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BATCHSET() { return GetToken(MSpecParser.BATCHSET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public AttributeListContext attributeList() { |
| return GetRuleContext<AttributeListContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext[] fieldDefinition() { |
| return GetRuleContexts<FieldDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext fieldDefinition(int i) { |
| return GetRuleContext<FieldDefinitionContext>(i); |
| } |
| public BatchSetDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_batchSetDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterBatchSetDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitBatchSetDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public BatchSetDefinitionContext batchSetDefinition() { |
| BatchSetDefinitionContext _localctx = new BatchSetDefinitionContext(Context, State); |
| EnterRule(_localctx, 14, RULE_batchSetDefinition); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 214; |
| Match(LBRACKET); |
| State = 215; |
| Match(BATCHSET); |
| State = 216; |
| _localctx.attributes = attributeList(); |
| State = 218; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| do { |
| { |
| { |
| State = 217; |
| fieldDefinition(); |
| } |
| } |
| State = 220; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } while ( _la==LBRACKET ); |
| State = 222; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class DataIoDefinitionContext : ParserRuleContext { |
| public MultipleExpressionsContext @params; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LBRACKET() { return GetTokens(MSpecParser.LBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET(int i) { |
| return GetToken(MSpecParser.LBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeSwitchFieldContext typeSwitchField() { |
| return GetRuleContext<TypeSwitchFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] RBRACKET() { return GetTokens(MSpecParser.RBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET(int i) { |
| return GetToken(MSpecParser.RBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public MultipleExpressionsContext multipleExpressions() { |
| return GetRuleContext<MultipleExpressionsContext>(0); |
| } |
| public DataIoDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_dataIoDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterDataIoDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitDataIoDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public DataIoDefinitionContext dataIoDefinition() { |
| DataIoDefinitionContext _localctx = new DataIoDefinitionContext(Context, State); |
| EnterRule(_localctx, 16, RULE_dataIoDefinition); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 224; |
| Match(LBRACKET); |
| State = 225; |
| typeSwitchField(); |
| State = 230; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LBRACKET) { |
| { |
| State = 226; |
| Match(LBRACKET); |
| State = 227; |
| _localctx.@params = multipleExpressions(); |
| State = 228; |
| Match(RBRACKET); |
| } |
| } |
| |
| State = 232; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class FieldContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public AbstractFieldContext abstractField() { |
| return GetRuleContext<AbstractFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ArrayFieldContext arrayField() { |
| return GetRuleContext<ArrayFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public AssertFieldContext assertField() { |
| return GetRuleContext<AssertFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ChecksumFieldContext checksumField() { |
| return GetRuleContext<ChecksumFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ConstFieldContext constField() { |
| return GetRuleContext<ConstFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public DiscriminatorFieldContext discriminatorField() { |
| return GetRuleContext<DiscriminatorFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public EnumFieldContext enumField() { |
| return GetRuleContext<EnumFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ImplicitFieldContext implicitField() { |
| return GetRuleContext<ImplicitFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ManualArrayFieldContext manualArrayField() { |
| return GetRuleContext<ManualArrayFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ManualFieldContext manualField() { |
| return GetRuleContext<ManualFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public OptionalFieldContext optionalField() { |
| return GetRuleContext<OptionalFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public PaddingFieldContext paddingField() { |
| return GetRuleContext<PaddingFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public PeekFieldContext peekField() { |
| return GetRuleContext<PeekFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ReservedFieldContext reservedField() { |
| return GetRuleContext<ReservedFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public SimpleFieldContext simpleField() { |
| return GetRuleContext<SimpleFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public StateFieldContext stateField() { |
| return GetRuleContext<StateFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeSwitchFieldContext typeSwitchField() { |
| return GetRuleContext<TypeSwitchFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public UnknownFieldContext unknownField() { |
| return GetRuleContext<UnknownFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ValidationFieldContext validationField() { |
| return GetRuleContext<ValidationFieldContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public VirtualFieldContext virtualField() { |
| return GetRuleContext<VirtualFieldContext>(0); |
| } |
| public FieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_field; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public FieldContext field() { |
| FieldContext _localctx = new FieldContext(Context, State); |
| EnterRule(_localctx, 18, RULE_field); |
| try { |
| State = 254; |
| ErrorHandler.Sync(this); |
| switch (TokenStream.LA(1)) { |
| case ABSTRACT: |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 234; |
| abstractField(); |
| } |
| break; |
| case ARRAY: |
| EnterOuterAlt(_localctx, 2); |
| { |
| State = 235; |
| arrayField(); |
| } |
| break; |
| case ASSERT: |
| EnterOuterAlt(_localctx, 3); |
| { |
| State = 236; |
| assertField(); |
| } |
| break; |
| case CHECKSUM: |
| EnterOuterAlt(_localctx, 4); |
| { |
| State = 237; |
| checksumField(); |
| } |
| break; |
| case CONST: |
| EnterOuterAlt(_localctx, 5); |
| { |
| State = 238; |
| constField(); |
| } |
| break; |
| case DISCRIMINATOR: |
| EnterOuterAlt(_localctx, 6); |
| { |
| State = 239; |
| discriminatorField(); |
| } |
| break; |
| case ENUM: |
| EnterOuterAlt(_localctx, 7); |
| { |
| State = 240; |
| enumField(); |
| } |
| break; |
| case IMPLICIT: |
| EnterOuterAlt(_localctx, 8); |
| { |
| State = 241; |
| implicitField(); |
| } |
| break; |
| case MANUALARRAY: |
| EnterOuterAlt(_localctx, 9); |
| { |
| State = 242; |
| manualArrayField(); |
| } |
| break; |
| case MANUAL: |
| EnterOuterAlt(_localctx, 10); |
| { |
| State = 243; |
| manualField(); |
| } |
| break; |
| case OPTIONAL: |
| EnterOuterAlt(_localctx, 11); |
| { |
| State = 244; |
| optionalField(); |
| } |
| break; |
| case PADDING: |
| EnterOuterAlt(_localctx, 12); |
| { |
| State = 245; |
| paddingField(); |
| } |
| break; |
| case PEEK: |
| EnterOuterAlt(_localctx, 13); |
| { |
| State = 246; |
| peekField(); |
| } |
| break; |
| case RESERVED: |
| EnterOuterAlt(_localctx, 14); |
| { |
| State = 247; |
| reservedField(); |
| } |
| break; |
| case SIMPLE: |
| EnterOuterAlt(_localctx, 15); |
| { |
| State = 248; |
| simpleField(); |
| } |
| break; |
| case STATE: |
| EnterOuterAlt(_localctx, 16); |
| { |
| State = 249; |
| stateField(); |
| } |
| break; |
| case TYPESWITCH: |
| EnterOuterAlt(_localctx, 17); |
| { |
| State = 250; |
| typeSwitchField(); |
| } |
| break; |
| case UNKNOWN: |
| EnterOuterAlt(_localctx, 18); |
| { |
| State = 251; |
| unknownField(); |
| } |
| break; |
| case VALIDATION: |
| EnterOuterAlt(_localctx, 19); |
| { |
| State = 252; |
| validationField(); |
| } |
| break; |
| case VIRTUAL: |
| EnterOuterAlt(_localctx, 20); |
| { |
| State = 253; |
| virtualField(); |
| } |
| break; |
| default: |
| throw new NoViableAltException(this); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class AbstractFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ABSTRACT() { return GetToken(MSpecParser.ABSTRACT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| public AbstractFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_abstractField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterAbstractField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitAbstractField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public AbstractFieldContext abstractField() { |
| AbstractFieldContext _localctx = new AbstractFieldContext(Context, State); |
| EnterRule(_localctx, 20, RULE_abstractField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 256; |
| Match(ABSTRACT); |
| State = 257; |
| _localctx.type = typeReference(); |
| State = 258; |
| _localctx.name = idExpression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ArrayFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public IToken loopType; |
| public ExpressionContext loopExpression; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ARRAY() { return GetToken(MSpecParser.ARRAY, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ARRAY_LOOP_TYPE() { return GetToken(MSpecParser.ARRAY_LOOP_TYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public ArrayFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_arrayField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterArrayField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitArrayField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ArrayFieldContext arrayField() { |
| ArrayFieldContext _localctx = new ArrayFieldContext(Context, State); |
| EnterRule(_localctx, 22, RULE_arrayField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 260; |
| Match(ARRAY); |
| State = 261; |
| _localctx.type = typeReference(); |
| State = 262; |
| _localctx.name = idExpression(); |
| State = 263; |
| _localctx.loopType = Match(ARRAY_LOOP_TYPE); |
| State = 264; |
| _localctx.loopExpression = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class AssertFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public ExpressionContext condition; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASSERT() { return GetToken(MSpecParser.ASSERT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public AssertFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_assertField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterAssertField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitAssertField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public AssertFieldContext assertField() { |
| AssertFieldContext _localctx = new AssertFieldContext(Context, State); |
| EnterRule(_localctx, 24, RULE_assertField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 266; |
| Match(ASSERT); |
| State = 267; |
| _localctx.type = typeReference(); |
| State = 268; |
| _localctx.name = idExpression(); |
| State = 269; |
| _localctx.condition = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ChecksumFieldContext : ParserRuleContext { |
| public DataTypeContext type; |
| public IdExpressionContext name; |
| public ExpressionContext checksumExpression; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CHECKSUM() { return GetToken(MSpecParser.CHECKSUM, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public ChecksumFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_checksumField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterChecksumField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitChecksumField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ChecksumFieldContext checksumField() { |
| ChecksumFieldContext _localctx = new ChecksumFieldContext(Context, State); |
| EnterRule(_localctx, 26, RULE_checksumField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 271; |
| Match(CHECKSUM); |
| State = 272; |
| _localctx.type = dataType(); |
| State = 273; |
| _localctx.name = idExpression(); |
| State = 274; |
| _localctx.checksumExpression = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ConstFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public ValueLiteralContext expected; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONST() { return GetToken(MSpecParser.CONST, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ValueLiteralContext valueLiteral() { |
| return GetRuleContext<ValueLiteralContext>(0); |
| } |
| public ConstFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_constField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterConstField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitConstField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ConstFieldContext constField() { |
| ConstFieldContext _localctx = new ConstFieldContext(Context, State); |
| EnterRule(_localctx, 28, RULE_constField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 276; |
| Match(CONST); |
| State = 277; |
| _localctx.type = typeReference(); |
| State = 278; |
| _localctx.name = idExpression(); |
| State = 279; |
| _localctx.expected = valueLiteral(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class DiscriminatorFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DISCRIMINATOR() { return GetToken(MSpecParser.DISCRIMINATOR, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| public DiscriminatorFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_discriminatorField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterDiscriminatorField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitDiscriminatorField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public DiscriminatorFieldContext discriminatorField() { |
| DiscriminatorFieldContext _localctx = new DiscriminatorFieldContext(Context, State); |
| EnterRule(_localctx, 30, RULE_discriminatorField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 281; |
| Match(DISCRIMINATOR); |
| State = 282; |
| _localctx.type = typeReference(); |
| State = 283; |
| _localctx.name = idExpression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class EnumFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public IdExpressionContext fieldName; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENUM() { return GetToken(MSpecParser.ENUM, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext[] idExpression() { |
| return GetRuleContexts<IdExpressionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression(int i) { |
| return GetRuleContext<IdExpressionContext>(i); |
| } |
| public EnumFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_enumField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterEnumField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitEnumField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public EnumFieldContext enumField() { |
| EnumFieldContext _localctx = new EnumFieldContext(Context, State); |
| EnterRule(_localctx, 32, RULE_enumField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 285; |
| Match(ENUM); |
| State = 286; |
| _localctx.type = typeReference(); |
| State = 287; |
| _localctx.name = idExpression(); |
| State = 288; |
| _localctx.fieldName = idExpression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ImplicitFieldContext : ParserRuleContext { |
| public DataTypeContext type; |
| public IdExpressionContext name; |
| public ExpressionContext serializeExpression; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMPLICIT() { return GetToken(MSpecParser.IMPLICIT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public ImplicitFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_implicitField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterImplicitField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitImplicitField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ImplicitFieldContext implicitField() { |
| ImplicitFieldContext _localctx = new ImplicitFieldContext(Context, State); |
| EnterRule(_localctx, 34, RULE_implicitField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 290; |
| Match(IMPLICIT); |
| State = 291; |
| _localctx.type = dataType(); |
| State = 292; |
| _localctx.name = idExpression(); |
| State = 293; |
| _localctx.serializeExpression = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ManualArrayFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public IToken loopType; |
| public ExpressionContext loopExpression; |
| public ExpressionContext parseExpression; |
| public ExpressionContext serializeExpression; |
| public ExpressionContext lengthExpression; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MANUALARRAY() { return GetToken(MSpecParser.MANUALARRAY, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ARRAY_LOOP_TYPE() { return GetToken(MSpecParser.ARRAY_LOOP_TYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() { |
| return GetRuleContexts<ExpressionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) { |
| return GetRuleContext<ExpressionContext>(i); |
| } |
| public ManualArrayFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_manualArrayField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterManualArrayField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitManualArrayField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ManualArrayFieldContext manualArrayField() { |
| ManualArrayFieldContext _localctx = new ManualArrayFieldContext(Context, State); |
| EnterRule(_localctx, 36, RULE_manualArrayField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 295; |
| Match(MANUALARRAY); |
| State = 296; |
| _localctx.type = typeReference(); |
| State = 297; |
| _localctx.name = idExpression(); |
| State = 298; |
| _localctx.loopType = Match(ARRAY_LOOP_TYPE); |
| State = 299; |
| _localctx.loopExpression = expression(); |
| State = 300; |
| _localctx.parseExpression = expression(); |
| State = 301; |
| _localctx.serializeExpression = expression(); |
| State = 302; |
| _localctx.lengthExpression = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ManualFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public ExpressionContext parseExpression; |
| public ExpressionContext serializeExpression; |
| public ExpressionContext lengthExpression; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MANUAL() { return GetToken(MSpecParser.MANUAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() { |
| return GetRuleContexts<ExpressionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) { |
| return GetRuleContext<ExpressionContext>(i); |
| } |
| public ManualFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_manualField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterManualField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitManualField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ManualFieldContext manualField() { |
| ManualFieldContext _localctx = new ManualFieldContext(Context, State); |
| EnterRule(_localctx, 38, RULE_manualField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 304; |
| Match(MANUAL); |
| State = 305; |
| _localctx.type = typeReference(); |
| State = 306; |
| _localctx.name = idExpression(); |
| State = 307; |
| _localctx.parseExpression = expression(); |
| State = 308; |
| _localctx.serializeExpression = expression(); |
| State = 309; |
| _localctx.lengthExpression = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class OptionalFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public ExpressionContext condition; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTIONAL() { return GetToken(MSpecParser.OPTIONAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public OptionalFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_optionalField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterOptionalField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitOptionalField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public OptionalFieldContext optionalField() { |
| OptionalFieldContext _localctx = new OptionalFieldContext(Context, State); |
| EnterRule(_localctx, 40, RULE_optionalField); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 311; |
| Match(OPTIONAL); |
| State = 312; |
| _localctx.type = typeReference(); |
| State = 313; |
| _localctx.name = idExpression(); |
| State = 315; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==TICK || _la==ASTERISK) { |
| { |
| State = 314; |
| _localctx.condition = expression(); |
| } |
| } |
| |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class PaddingFieldContext : ParserRuleContext { |
| public DataTypeContext type; |
| public IdExpressionContext name; |
| public ExpressionContext paddingValue; |
| public ExpressionContext timesPadding; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PADDING() { return GetToken(MSpecParser.PADDING, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() { |
| return GetRuleContexts<ExpressionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) { |
| return GetRuleContext<ExpressionContext>(i); |
| } |
| public PaddingFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_paddingField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterPaddingField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitPaddingField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public PaddingFieldContext paddingField() { |
| PaddingFieldContext _localctx = new PaddingFieldContext(Context, State); |
| EnterRule(_localctx, 42, RULE_paddingField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 317; |
| Match(PADDING); |
| State = 318; |
| _localctx.type = dataType(); |
| State = 319; |
| _localctx.name = idExpression(); |
| State = 320; |
| _localctx.paddingValue = expression(); |
| State = 321; |
| _localctx.timesPadding = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class PeekFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public ExpressionContext offset; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PEEK() { return GetToken(MSpecParser.PEEK, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public PeekFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_peekField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterPeekField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitPeekField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public PeekFieldContext peekField() { |
| PeekFieldContext _localctx = new PeekFieldContext(Context, State); |
| EnterRule(_localctx, 44, RULE_peekField); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 323; |
| Match(PEEK); |
| State = 324; |
| _localctx.type = typeReference(); |
| State = 325; |
| _localctx.name = idExpression(); |
| State = 327; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==TICK || _la==ASTERISK) { |
| { |
| State = 326; |
| _localctx.offset = expression(); |
| } |
| } |
| |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ReservedFieldContext : ParserRuleContext { |
| public DataTypeContext type; |
| public ExpressionContext expected; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESERVED() { return GetToken(MSpecParser.RESERVED, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public ReservedFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_reservedField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterReservedField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitReservedField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ReservedFieldContext reservedField() { |
| ReservedFieldContext _localctx = new ReservedFieldContext(Context, State); |
| EnterRule(_localctx, 46, RULE_reservedField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 329; |
| Match(RESERVED); |
| State = 330; |
| _localctx.type = dataType(); |
| State = 331; |
| _localctx.expected = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class SimpleFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SIMPLE() { return GetToken(MSpecParser.SIMPLE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| public SimpleFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_simpleField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterSimpleField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitSimpleField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public SimpleFieldContext simpleField() { |
| SimpleFieldContext _localctx = new SimpleFieldContext(Context, State); |
| EnterRule(_localctx, 48, RULE_simpleField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 333; |
| Match(SIMPLE); |
| State = 334; |
| _localctx.type = typeReference(); |
| State = 335; |
| _localctx.name = idExpression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class StateFieldContext : ParserRuleContext { |
| public IdExpressionContext name; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATE() { return GetToken(MSpecParser.STATE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| public StateFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_stateField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterStateField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitStateField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public StateFieldContext stateField() { |
| StateFieldContext _localctx = new StateFieldContext(Context, State); |
| EnterRule(_localctx, 50, RULE_stateField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 337; |
| Match(STATE); |
| State = 338; |
| _localctx.name = idExpression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class TypeSwitchFieldContext : ParserRuleContext { |
| public MultipleVariableLiteralsContext discriminators; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPESWITCH() { return GetToken(MSpecParser.TYPESWITCH, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public MultipleVariableLiteralsContext multipleVariableLiterals() { |
| return GetRuleContext<MultipleVariableLiteralsContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public CaseStatementContext[] caseStatement() { |
| return GetRuleContexts<CaseStatementContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public CaseStatementContext caseStatement(int i) { |
| return GetRuleContext<CaseStatementContext>(i); |
| } |
| public TypeSwitchFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_typeSwitchField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterTypeSwitchField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitTypeSwitchField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public TypeSwitchFieldContext typeSwitchField() { |
| TypeSwitchFieldContext _localctx = new TypeSwitchFieldContext(Context, State); |
| EnterRule(_localctx, 52, RULE_typeSwitchField); |
| try { |
| int _alt; |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 340; |
| Match(TYPESWITCH); |
| State = 341; |
| _localctx.discriminators = multipleVariableLiterals(); |
| State = 345; |
| ErrorHandler.Sync(this); |
| _alt = Interpreter.AdaptivePredict(TokenStream,23,Context); |
| while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { |
| if ( _alt==1 ) { |
| { |
| { |
| State = 342; |
| caseStatement(); |
| } |
| } |
| } |
| State = 347; |
| ErrorHandler.Sync(this); |
| _alt = Interpreter.AdaptivePredict(TokenStream,23,Context); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class UnknownFieldContext : ParserRuleContext { |
| public DataTypeContext type; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNKNOWN() { return GetToken(MSpecParser.UNKNOWN, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| public UnknownFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_unknownField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterUnknownField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitUnknownField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public UnknownFieldContext unknownField() { |
| UnknownFieldContext _localctx = new UnknownFieldContext(Context, State); |
| EnterRule(_localctx, 54, RULE_unknownField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 348; |
| Match(UNKNOWN); |
| State = 349; |
| _localctx.type = dataType(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ValidationFieldContext : ParserRuleContext { |
| public ExpressionContext validationExpression; |
| public IToken description; |
| public IToken shouldFail; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VALIDATION() { return GetToken(MSpecParser.VALIDATION, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SHOULD_FAIL() { return GetToken(MSpecParser.SHOULD_FAIL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING_LITERAL() { return GetToken(MSpecParser.STRING_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BOOLEAN_LITERAL() { return GetToken(MSpecParser.BOOLEAN_LITERAL, 0); } |
| public ValidationFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_validationField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterValidationField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitValidationField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ValidationFieldContext validationField() { |
| ValidationFieldContext _localctx = new ValidationFieldContext(Context, State); |
| EnterRule(_localctx, 56, RULE_validationField); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 351; |
| Match(VALIDATION); |
| State = 352; |
| _localctx.validationExpression = expression(); |
| State = 354; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==STRING_LITERAL) { |
| { |
| State = 353; |
| _localctx.description = Match(STRING_LITERAL); |
| } |
| } |
| |
| State = 359; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==SHOULD_FAIL) { |
| { |
| State = 356; |
| Match(SHOULD_FAIL); |
| State = 357; |
| Match(T__0); |
| State = 358; |
| _localctx.shouldFail = Match(BOOLEAN_LITERAL); |
| } |
| } |
| |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class VirtualFieldContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| public ExpressionContext valueExpression; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VIRTUAL() { return GetToken(MSpecParser.VIRTUAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public VirtualFieldContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_virtualField; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterVirtualField(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitVirtualField(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public VirtualFieldContext virtualField() { |
| VirtualFieldContext _localctx = new VirtualFieldContext(Context, State); |
| EnterRule(_localctx, 58, RULE_virtualField); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 361; |
| Match(VIRTUAL); |
| State = 362; |
| _localctx.type = typeReference(); |
| State = 363; |
| _localctx.name = idExpression(); |
| State = 364; |
| _localctx.valueExpression = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class EnumValueDefinitionContext : ParserRuleContext { |
| public ExpressionContext valueExpression; |
| public IToken name; |
| public MultipleExpressionsContext constantValueExpressions; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LBRACKET() { return GetTokens(MSpecParser.LBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET(int i) { |
| return GetToken(MSpecParser.LBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] RBRACKET() { return GetTokens(MSpecParser.RBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET(int i) { |
| return GetToken(MSpecParser.RBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER_LITERAL() { return GetToken(MSpecParser.IDENTIFIER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public MultipleExpressionsContext multipleExpressions() { |
| return GetRuleContext<MultipleExpressionsContext>(0); |
| } |
| public EnumValueDefinitionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_enumValueDefinition; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterEnumValueDefinition(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitEnumValueDefinition(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public EnumValueDefinitionContext enumValueDefinition() { |
| EnumValueDefinitionContext _localctx = new EnumValueDefinitionContext(Context, State); |
| EnterRule(_localctx, 60, RULE_enumValueDefinition); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 366; |
| Match(LBRACKET); |
| State = 368; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==TICK || _la==ASTERISK) { |
| { |
| State = 367; |
| _localctx.valueExpression = expression(); |
| } |
| } |
| |
| State = 370; |
| _localctx.name = Match(IDENTIFIER_LITERAL); |
| State = 375; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LBRACKET) { |
| { |
| State = 371; |
| Match(LBRACKET); |
| State = 372; |
| _localctx.constantValueExpressions = multipleExpressions(); |
| State = 373; |
| Match(RBRACKET); |
| } |
| } |
| |
| State = 377; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class TypeReferenceContext : ParserRuleContext { |
| public IToken complexTypeReference; |
| public MultipleExpressionsContext @params; |
| public DataTypeContext simpleTypeReference; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER_LITERAL() { return GetToken(MSpecParser.IDENTIFIER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LRBRACKET() { return GetToken(MSpecParser.LRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RRBRACKET() { return GetToken(MSpecParser.RRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public MultipleExpressionsContext multipleExpressions() { |
| return GetRuleContext<MultipleExpressionsContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public DataTypeContext dataType() { |
| return GetRuleContext<DataTypeContext>(0); |
| } |
| public TypeReferenceContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_typeReference; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterTypeReference(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitTypeReference(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public TypeReferenceContext typeReference() { |
| TypeReferenceContext _localctx = new TypeReferenceContext(Context, State); |
| EnterRule(_localctx, 62, RULE_typeReference); |
| int _la; |
| try { |
| State = 387; |
| ErrorHandler.Sync(this); |
| switch (TokenStream.LA(1)) { |
| case IDENTIFIER_LITERAL: |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 379; |
| _localctx.complexTypeReference = Match(IDENTIFIER_LITERAL); |
| State = 384; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LRBRACKET) { |
| { |
| State = 380; |
| Match(LRBRACKET); |
| State = 381; |
| _localctx.@params = multipleExpressions(); |
| State = 382; |
| Match(RRBRACKET); |
| } |
| } |
| |
| } |
| break; |
| case BIT: |
| case BYTE: |
| case INT: |
| case VINT: |
| case UINT: |
| case VUINT: |
| case FLOAT: |
| case UFLOAT: |
| case STRING: |
| case VSTRING: |
| case TIME: |
| case DATE: |
| case DATETIME: |
| EnterOuterAlt(_localctx, 2); |
| { |
| State = 386; |
| _localctx.simpleTypeReference = dataType(); |
| } |
| break; |
| default: |
| throw new NoViableAltException(this); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class CaseStatementContext : ParserRuleContext { |
| public MultipleExpressionsContext discriminatorValues; |
| public IToken nameWildcard; |
| public IToken name; |
| public ArgumentListContext @params; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET() { return GetToken(MSpecParser.LBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER_LITERAL() { return GetToken(MSpecParser.IDENTIFIER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LRBRACKET() { return GetToken(MSpecParser.LRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RRBRACKET() { return GetToken(MSpecParser.RRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext[] fieldDefinition() { |
| return GetRuleContexts<FieldDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public FieldDefinitionContext fieldDefinition(int i) { |
| return GetRuleContext<FieldDefinitionContext>(i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public BatchSetDefinitionContext[] batchSetDefinition() { |
| return GetRuleContexts<BatchSetDefinitionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public BatchSetDefinitionContext batchSetDefinition(int i) { |
| return GetRuleContext<BatchSetDefinitionContext>(i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public MultipleExpressionsContext multipleExpressions() { |
| return GetRuleContext<MultipleExpressionsContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASTERISK() { return GetToken(MSpecParser.ASTERISK, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ArgumentListContext argumentList() { |
| return GetRuleContext<ArgumentListContext>(0); |
| } |
| public CaseStatementContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_caseStatement; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterCaseStatement(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitCaseStatement(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public CaseStatementContext caseStatement() { |
| CaseStatementContext _localctx = new CaseStatementContext(Context, State); |
| EnterRule(_localctx, 64, RULE_caseStatement); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 389; |
| Match(LBRACKET); |
| State = 391; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,30,Context) ) { |
| case 1: |
| { |
| State = 390; |
| _localctx.discriminatorValues = multipleExpressions(); |
| } |
| break; |
| } |
| State = 394; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==ASTERISK) { |
| { |
| State = 393; |
| _localctx.nameWildcard = Match(ASTERISK); |
| } |
| } |
| |
| State = 396; |
| _localctx.name = Match(IDENTIFIER_LITERAL); |
| State = 401; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if (_la==LRBRACKET) { |
| { |
| State = 397; |
| Match(LRBRACKET); |
| State = 398; |
| _localctx.@params = argumentList(); |
| State = 399; |
| Match(RRBRACKET); |
| } |
| } |
| |
| State = 407; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==LBRACKET) { |
| { |
| State = 405; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,33,Context) ) { |
| case 1: |
| { |
| State = 403; |
| fieldDefinition(); |
| } |
| break; |
| case 2: |
| { |
| State = 404; |
| batchSetDefinition(); |
| } |
| break; |
| } |
| } |
| State = 409; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| State = 410; |
| Match(RBRACKET); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class DataTypeContext : ParserRuleContext { |
| public IToken @base; |
| public IToken size; |
| public ExpressionContext length; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BIT() { return GetToken(MSpecParser.BIT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYTE() { return GetToken(MSpecParser.BYTE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INT() { return GetToken(MSpecParser.INT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER_LITERAL() { return GetToken(MSpecParser.INTEGER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VINT() { return GetToken(MSpecParser.VINT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UINT() { return GetToken(MSpecParser.UINT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VUINT() { return GetToken(MSpecParser.VUINT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FLOAT() { return GetToken(MSpecParser.FLOAT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UFLOAT() { return GetToken(MSpecParser.UFLOAT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING() { return GetToken(MSpecParser.STRING, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VSTRING() { return GetToken(MSpecParser.VSTRING, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TIME() { return GetToken(MSpecParser.TIME, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATE() { return GetToken(MSpecParser.DATE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATETIME() { return GetToken(MSpecParser.DATETIME, 0); } |
| public DataTypeContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_dataType; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterDataType(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitDataType(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public DataTypeContext dataType() { |
| DataTypeContext _localctx = new DataTypeContext(Context, State); |
| EnterRule(_localctx, 66, RULE_dataType); |
| try { |
| State = 433; |
| ErrorHandler.Sync(this); |
| switch (TokenStream.LA(1)) { |
| case BIT: |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 412; |
| _localctx.@base = Match(BIT); |
| } |
| break; |
| case BYTE: |
| EnterOuterAlt(_localctx, 2); |
| { |
| State = 413; |
| _localctx.@base = Match(BYTE); |
| } |
| break; |
| case INT: |
| EnterOuterAlt(_localctx, 3); |
| { |
| State = 414; |
| _localctx.@base = Match(INT); |
| State = 415; |
| _localctx.size = Match(INTEGER_LITERAL); |
| } |
| break; |
| case VINT: |
| EnterOuterAlt(_localctx, 4); |
| { |
| State = 416; |
| _localctx.@base = Match(VINT); |
| } |
| break; |
| case UINT: |
| EnterOuterAlt(_localctx, 5); |
| { |
| State = 417; |
| _localctx.@base = Match(UINT); |
| State = 418; |
| _localctx.size = Match(INTEGER_LITERAL); |
| } |
| break; |
| case VUINT: |
| EnterOuterAlt(_localctx, 6); |
| { |
| State = 419; |
| _localctx.@base = Match(VUINT); |
| } |
| break; |
| case FLOAT: |
| EnterOuterAlt(_localctx, 7); |
| { |
| State = 420; |
| _localctx.@base = Match(FLOAT); |
| State = 421; |
| _localctx.size = Match(INTEGER_LITERAL); |
| } |
| break; |
| case UFLOAT: |
| EnterOuterAlt(_localctx, 8); |
| { |
| State = 422; |
| _localctx.@base = Match(UFLOAT); |
| State = 423; |
| _localctx.size = Match(INTEGER_LITERAL); |
| } |
| break; |
| case STRING: |
| EnterOuterAlt(_localctx, 9); |
| { |
| State = 424; |
| _localctx.@base = Match(STRING); |
| State = 425; |
| _localctx.size = Match(INTEGER_LITERAL); |
| } |
| break; |
| case VSTRING: |
| EnterOuterAlt(_localctx, 10); |
| { |
| State = 426; |
| _localctx.@base = Match(VSTRING); |
| State = 428; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,35,Context) ) { |
| case 1: |
| { |
| State = 427; |
| _localctx.length = expression(); |
| } |
| break; |
| } |
| } |
| break; |
| case TIME: |
| EnterOuterAlt(_localctx, 11); |
| { |
| State = 430; |
| _localctx.@base = Match(TIME); |
| } |
| break; |
| case DATE: |
| EnterOuterAlt(_localctx, 12); |
| { |
| State = 431; |
| _localctx.@base = Match(DATE); |
| } |
| break; |
| case DATETIME: |
| EnterOuterAlt(_localctx, 13); |
| { |
| State = 432; |
| _localctx.@base = Match(DATETIME); |
| } |
| break; |
| default: |
| throw new NoViableAltException(this); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class AttributeContext : ParserRuleContext { |
| public IToken name; |
| public ExpressionContext value; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER_LITERAL() { return GetToken(MSpecParser.IDENTIFIER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() { |
| return GetRuleContext<ExpressionContext>(0); |
| } |
| public AttributeContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_attribute; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterAttribute(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitAttribute(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public AttributeContext attribute() { |
| AttributeContext _localctx = new AttributeContext(Context, State); |
| EnterRule(_localctx, 68, RULE_attribute); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 435; |
| _localctx.name = Match(IDENTIFIER_LITERAL); |
| State = 436; |
| Match(T__0); |
| State = 437; |
| _localctx.value = expression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class AttributeListContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public AttributeContext[] attribute() { |
| return GetRuleContexts<AttributeContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public AttributeContext attribute(int i) { |
| return GetRuleContext<AttributeContext>(i); |
| } |
| public AttributeListContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_attributeList; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterAttributeList(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitAttributeList(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public AttributeListContext attributeList() { |
| AttributeListContext _localctx = new AttributeListContext(Context, State); |
| EnterRule(_localctx, 70, RULE_attributeList); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 442; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==IDENTIFIER_LITERAL) { |
| { |
| { |
| State = 439; |
| attribute(); |
| } |
| } |
| State = 444; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ArgumentContext : ParserRuleContext { |
| public TypeReferenceContext type; |
| public IdExpressionContext name; |
| [System.Diagnostics.DebuggerNonUserCode] public TypeReferenceContext typeReference() { |
| return GetRuleContext<TypeReferenceContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| public ArgumentContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_argument; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterArgument(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitArgument(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ArgumentContext argument() { |
| ArgumentContext _localctx = new ArgumentContext(Context, State); |
| EnterRule(_localctx, 72, RULE_argument); |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 445; |
| _localctx.type = typeReference(); |
| State = 446; |
| _localctx.name = idExpression(); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ArgumentListContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ArgumentContext[] argument() { |
| return GetRuleContexts<ArgumentContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ArgumentContext argument(int i) { |
| return GetRuleContext<ArgumentContext>(i); |
| } |
| public ArgumentListContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_argumentList; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterArgumentList(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitArgumentList(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ArgumentListContext argumentList() { |
| ArgumentListContext _localctx = new ArgumentListContext(Context, State); |
| EnterRule(_localctx, 74, RULE_argumentList); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 448; |
| argument(); |
| State = 453; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==T__1) { |
| { |
| { |
| State = 449; |
| Match(T__1); |
| State = 450; |
| argument(); |
| } |
| } |
| State = 455; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class ExpressionContext : ParserRuleContext { |
| public InnerExpressionContext expr; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] TICK() { return GetTokens(MSpecParser.TICK); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TICK(int i) { |
| return GetToken(MSpecParser.TICK, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public InnerExpressionContext innerExpression() { |
| return GetRuleContext<InnerExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASTERISK() { return GetToken(MSpecParser.ASTERISK, 0); } |
| public ExpressionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_expression; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterExpression(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitExpression(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ExpressionContext expression() { |
| ExpressionContext _localctx = new ExpressionContext(Context, State); |
| EnterRule(_localctx, 76, RULE_expression); |
| try { |
| State = 461; |
| ErrorHandler.Sync(this); |
| switch (TokenStream.LA(1)) { |
| case TICK: |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 456; |
| Match(TICK); |
| State = 457; |
| _localctx.expr = innerExpression(0); |
| State = 458; |
| Match(TICK); |
| } |
| break; |
| case ASTERISK: |
| EnterOuterAlt(_localctx, 2); |
| { |
| State = 460; |
| Match(ASTERISK); |
| } |
| break; |
| default: |
| throw new NoViableAltException(this); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class MultipleExpressionsContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() { |
| return GetRuleContexts<ExpressionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) { |
| return GetRuleContext<ExpressionContext>(i); |
| } |
| public MultipleExpressionsContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_multipleExpressions; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterMultipleExpressions(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitMultipleExpressions(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public MultipleExpressionsContext multipleExpressions() { |
| MultipleExpressionsContext _localctx = new MultipleExpressionsContext(Context, State); |
| EnterRule(_localctx, 78, RULE_multipleExpressions); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 463; |
| expression(); |
| State = 468; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==T__1) { |
| { |
| { |
| State = 464; |
| Match(T__1); |
| State = 465; |
| expression(); |
| } |
| } |
| State = 470; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class MultipleVariableLiteralsContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public VariableLiteralContext[] variableLiteral() { |
| return GetRuleContexts<VariableLiteralContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public VariableLiteralContext variableLiteral(int i) { |
| return GetRuleContext<VariableLiteralContext>(i); |
| } |
| public MultipleVariableLiteralsContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_multipleVariableLiterals; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterMultipleVariableLiterals(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitMultipleVariableLiterals(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public MultipleVariableLiteralsContext multipleVariableLiterals() { |
| MultipleVariableLiteralsContext _localctx = new MultipleVariableLiteralsContext(Context, State); |
| EnterRule(_localctx, 80, RULE_multipleVariableLiterals); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 471; |
| variableLiteral(0); |
| State = 476; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==T__1) { |
| { |
| { |
| State = 472; |
| Match(T__1); |
| State = 473; |
| variableLiteral(0); |
| } |
| } |
| State = 478; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class VariableLiteralContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER_LITERAL() { return GetToken(MSpecParser.IDENTIFIER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public VariableLiteralContext variableLiteral() { |
| return GetRuleContext<VariableLiteralContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LBRACKET() { return GetTokens(MSpecParser.LBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET(int i) { |
| return GetToken(MSpecParser.LBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INTEGER_LITERAL() { return GetTokens(MSpecParser.INTEGER_LITERAL); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER_LITERAL(int i) { |
| return GetToken(MSpecParser.INTEGER_LITERAL, i); |
| } |
| public VariableLiteralContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_variableLiteral; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterVariableLiteral(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitVariableLiteral(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public VariableLiteralContext variableLiteral() { |
| return variableLiteral(0); |
| } |
| |
| private VariableLiteralContext variableLiteral(int _p) { |
| ParserRuleContext _parentctx = Context; |
| int _parentState = State; |
| VariableLiteralContext _localctx = new VariableLiteralContext(Context, _parentState); |
| VariableLiteralContext _prevctx = _localctx; |
| int _startState = 82; |
| EnterRecursionRule(_localctx, 82, RULE_variableLiteral, _p); |
| int _la; |
| try { |
| int _alt; |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 484; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,42,Context) ) { |
| case 1: |
| { |
| State = 480; |
| Match(IDENTIFIER_LITERAL); |
| } |
| break; |
| case 2: |
| { |
| State = 481; |
| Match(IDENTIFIER_LITERAL); |
| State = 482; |
| Match(T__2); |
| State = 483; |
| variableLiteral(2); |
| } |
| break; |
| } |
| Context.Stop = TokenStream.LT(-1); |
| State = 500; |
| ErrorHandler.Sync(this); |
| _alt = Interpreter.AdaptivePredict(TokenStream,45,Context); |
| while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { |
| if ( _alt==1 ) { |
| if ( ParseListeners!=null ) |
| TriggerExitRuleEvent(); |
| _prevctx = _localctx; |
| { |
| { |
| _localctx = new VariableLiteralContext(_parentctx, _parentState); |
| PushNewRecursionContext(_localctx, _startState, RULE_variableLiteral); |
| State = 486; |
| if (!(Precpred(Context, 1))) throw new FailedPredicateException(this, "Precpred(Context, 1)"); |
| State = 488; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| do { |
| { |
| { |
| State = 487; |
| Match(LBRACKET); |
| } |
| } |
| State = 490; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } while ( _la==LBRACKET ); |
| State = 493; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| do { |
| { |
| { |
| State = 492; |
| Match(INTEGER_LITERAL); |
| } |
| } |
| State = 495; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } while ( _la==INTEGER_LITERAL ); |
| State = 497; |
| Match(RBRACKET); |
| } |
| } |
| } |
| State = 502; |
| ErrorHandler.Sync(this); |
| _alt = Interpreter.AdaptivePredict(TokenStream,45,Context); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| UnrollRecursionContexts(_parentctx); |
| } |
| return _localctx; |
| } |
| |
| public partial class InnerExpressionContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ValueLiteralContext valueLiteral() { |
| return GetRuleContext<ValueLiteralContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ARRAY_LOOP_TYPE() { return GetToken(MSpecParser.ARRAY_LOOP_TYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public IdExpressionContext idExpression() { |
| return GetRuleContext<IdExpressionContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LRBRACKET() { return GetToken(MSpecParser.LRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RRBRACKET() { return GetToken(MSpecParser.RRBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LBRACKET() { return GetTokens(MSpecParser.LBRACKET); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACKET(int i) { |
| return GetToken(MSpecParser.LBRACKET, i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public InnerExpressionContext[] innerExpression() { |
| return GetRuleContexts<InnerExpressionContext>(); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public InnerExpressionContext innerExpression(int i) { |
| return GetRuleContext<InnerExpressionContext>(i); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACKET() { return GetToken(MSpecParser.RBRACKET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public BinaryOperatorContext binaryOperator() { |
| return GetRuleContext<BinaryOperatorContext>(0); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INTEGER_LITERAL() { return GetTokens(MSpecParser.INTEGER_LITERAL); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER_LITERAL(int i) { |
| return GetToken(MSpecParser.INTEGER_LITERAL, i); |
| } |
| public InnerExpressionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_innerExpression; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterInnerExpression(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitInnerExpression(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public InnerExpressionContext innerExpression() { |
| return innerExpression(0); |
| } |
| |
| private InnerExpressionContext innerExpression(int _p) { |
| ParserRuleContext _parentctx = Context; |
| int _parentState = State; |
| InnerExpressionContext _localctx = new InnerExpressionContext(Context, _parentState); |
| InnerExpressionContext _prevctx = _localctx; |
| int _startState = 84; |
| EnterRecursionRule(_localctx, 84, RULE_innerExpression, _p); |
| int _la; |
| try { |
| int _alt; |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 537; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,50,Context) ) { |
| case 1: |
| { |
| State = 504; |
| valueLiteral(); |
| } |
| break; |
| case 2: |
| { |
| State = 505; |
| Match(ARRAY_LOOP_TYPE); |
| } |
| break; |
| case 3: |
| { |
| State = 506; |
| idExpression(); |
| State = 519; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,48,Context) ) { |
| case 1: |
| { |
| State = 507; |
| Match(LRBRACKET); |
| State = 516; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8321498944L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 131071L) != 0)) { |
| { |
| State = 508; |
| innerExpression(0); |
| State = 513; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| while (_la==T__1) { |
| { |
| { |
| State = 509; |
| Match(T__1); |
| State = 510; |
| innerExpression(0); |
| } |
| } |
| State = 515; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } |
| } |
| } |
| |
| State = 518; |
| Match(RRBRACKET); |
| } |
| break; |
| } |
| State = 525; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,49,Context) ) { |
| case 1: |
| { |
| State = 521; |
| Match(LBRACKET); |
| State = 522; |
| innerExpression(0); |
| State = 523; |
| Match(RBRACKET); |
| } |
| break; |
| } |
| } |
| break; |
| case 4: |
| { |
| State = 527; |
| Match(LRBRACKET); |
| State = 528; |
| innerExpression(0); |
| State = 529; |
| Match(RRBRACKET); |
| } |
| break; |
| case 5: |
| { |
| State = 531; |
| Match(T__5); |
| State = 532; |
| innerExpression(0); |
| State = 533; |
| Match(T__5); |
| } |
| break; |
| case 6: |
| { |
| State = 535; |
| Match(T__6); |
| State = 536; |
| innerExpression(1); |
| } |
| break; |
| } |
| Context.Stop = TokenStream.LT(-1); |
| State = 566; |
| ErrorHandler.Sync(this); |
| _alt = Interpreter.AdaptivePredict(TokenStream,54,Context); |
| while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { |
| if ( _alt==1 ) { |
| if ( ParseListeners!=null ) |
| TriggerExitRuleEvent(); |
| _prevctx = _localctx; |
| { |
| State = 564; |
| ErrorHandler.Sync(this); |
| switch ( Interpreter.AdaptivePredict(TokenStream,53,Context) ) { |
| case 1: |
| { |
| _localctx = new InnerExpressionContext(_parentctx, _parentState); |
| PushNewRecursionContext(_localctx, _startState, RULE_innerExpression); |
| State = 539; |
| if (!(Precpred(Context, 7))) throw new FailedPredicateException(this, "Precpred(Context, 7)"); |
| State = 540; |
| Match(T__2); |
| State = 541; |
| innerExpression(8); |
| } |
| break; |
| case 2: |
| { |
| _localctx = new InnerExpressionContext(_parentctx, _parentState); |
| PushNewRecursionContext(_localctx, _startState, RULE_innerExpression); |
| State = 542; |
| if (!(Precpred(Context, 5))) throw new FailedPredicateException(this, "Precpred(Context, 5)"); |
| State = 543; |
| binaryOperator(); |
| State = 544; |
| innerExpression(6); |
| } |
| break; |
| case 3: |
| { |
| _localctx = new InnerExpressionContext(_parentctx, _parentState); |
| PushNewRecursionContext(_localctx, _startState, RULE_innerExpression); |
| State = 546; |
| if (!(Precpred(Context, 4))) throw new FailedPredicateException(this, "Precpred(Context, 4)"); |
| State = 547; |
| Match(T__3); |
| State = 548; |
| innerExpression(0); |
| State = 549; |
| Match(T__4); |
| State = 550; |
| innerExpression(5); |
| } |
| break; |
| case 4: |
| { |
| _localctx = new InnerExpressionContext(_parentctx, _parentState); |
| PushNewRecursionContext(_localctx, _startState, RULE_innerExpression); |
| State = 552; |
| if (!(Precpred(Context, 6))) throw new FailedPredicateException(this, "Precpred(Context, 6)"); |
| State = 554; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| do { |
| { |
| { |
| State = 553; |
| Match(LBRACKET); |
| } |
| } |
| State = 556; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } while ( _la==LBRACKET ); |
| State = 559; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| do { |
| { |
| { |
| State = 558; |
| Match(INTEGER_LITERAL); |
| } |
| } |
| State = 561; |
| ErrorHandler.Sync(this); |
| _la = TokenStream.LA(1); |
| } while ( _la==INTEGER_LITERAL ); |
| State = 563; |
| Match(RBRACKET); |
| } |
| break; |
| } |
| } |
| } |
| State = 568; |
| ErrorHandler.Sync(this); |
| _alt = Interpreter.AdaptivePredict(TokenStream,54,Context); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| UnrollRecursionContexts(_parentctx); |
| } |
| return _localctx; |
| } |
| |
| public partial class ValueLiteralContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BOOLEAN_LITERAL() { return GetToken(MSpecParser.BOOLEAN_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode HEX_LITERAL() { return GetToken(MSpecParser.HEX_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER_LITERAL() { return GetToken(MSpecParser.INTEGER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FLOAT_LITERAL() { return GetToken(MSpecParser.FLOAT_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING_LITERAL() { return GetToken(MSpecParser.STRING_LITERAL, 0); } |
| public ValueLiteralContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_valueLiteral; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterValueLiteral(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitValueLiteral(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public ValueLiteralContext valueLiteral() { |
| ValueLiteralContext _localctx = new ValueLiteralContext(Context, State); |
| EnterRule(_localctx, 86, RULE_valueLiteral); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 569; |
| _la = TokenStream.LA(1); |
| if ( !(((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & 31L) != 0)) ) { |
| ErrorHandler.RecoverInline(this); |
| } |
| else { |
| ErrorHandler.ReportMatch(this); |
| Consume(); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class IdExpressionContext : ParserRuleContext { |
| public IToken id; |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER_LITERAL() { return GetToken(MSpecParser.IDENTIFIER_LITERAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ARRAY_LOOP_TYPE() { return GetToken(MSpecParser.ARRAY_LOOP_TYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONSTANTS() { return GetToken(MSpecParser.CONSTANTS, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GLOBALS() { return GetToken(MSpecParser.GLOBALS, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONTEXT() { return GetToken(MSpecParser.CONTEXT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPE() { return GetToken(MSpecParser.TYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DISCRIMINATEDTYPE() { return GetToken(MSpecParser.DISCRIMINATEDTYPE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATAIO() { return GetToken(MSpecParser.DATAIO, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENUM() { return GetToken(MSpecParser.ENUM, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BATCHSET() { return GetToken(MSpecParser.BATCHSET, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ABSTRACT() { return GetToken(MSpecParser.ABSTRACT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ARRAY() { return GetToken(MSpecParser.ARRAY, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASSERT() { return GetToken(MSpecParser.ASSERT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CHECKSUM() { return GetToken(MSpecParser.CHECKSUM, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONST() { return GetToken(MSpecParser.CONST, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DISCRIMINATOR() { return GetToken(MSpecParser.DISCRIMINATOR, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMPLICIT() { return GetToken(MSpecParser.IMPLICIT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MANUALARRAY() { return GetToken(MSpecParser.MANUALARRAY, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MANUAL() { return GetToken(MSpecParser.MANUAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTIONAL() { return GetToken(MSpecParser.OPTIONAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PADDING() { return GetToken(MSpecParser.PADDING, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PEEK() { return GetToken(MSpecParser.PEEK, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESERVED() { return GetToken(MSpecParser.RESERVED, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SIMPLE() { return GetToken(MSpecParser.SIMPLE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATE() { return GetToken(MSpecParser.STATE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPESWITCH() { return GetToken(MSpecParser.TYPESWITCH, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNKNOWN() { return GetToken(MSpecParser.UNKNOWN, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VALIDATION() { return GetToken(MSpecParser.VALIDATION, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VIRTUAL() { return GetToken(MSpecParser.VIRTUAL, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BIT() { return GetToken(MSpecParser.BIT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYTE() { return GetToken(MSpecParser.BYTE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INT() { return GetToken(MSpecParser.INT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VINT() { return GetToken(MSpecParser.VINT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UINT() { return GetToken(MSpecParser.UINT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VUINT() { return GetToken(MSpecParser.VUINT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FLOAT() { return GetToken(MSpecParser.FLOAT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UFLOAT() { return GetToken(MSpecParser.UFLOAT, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING() { return GetToken(MSpecParser.STRING, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VSTRING() { return GetToken(MSpecParser.VSTRING, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TIME() { return GetToken(MSpecParser.TIME, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATE() { return GetToken(MSpecParser.DATE, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATETIME() { return GetToken(MSpecParser.DATETIME, 0); } |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SHOULD_FAIL() { return GetToken(MSpecParser.SHOULD_FAIL, 0); } |
| public IdExpressionContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_idExpression; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterIdExpression(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitIdExpression(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public IdExpressionContext idExpression() { |
| IdExpressionContext _localctx = new IdExpressionContext(Context, State); |
| EnterRule(_localctx, 88, RULE_idExpression); |
| try { |
| State = 614; |
| ErrorHandler.Sync(this); |
| switch (TokenStream.LA(1)) { |
| case IDENTIFIER_LITERAL: |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 571; |
| _localctx.id = Match(IDENTIFIER_LITERAL); |
| } |
| break; |
| case ARRAY_LOOP_TYPE: |
| EnterOuterAlt(_localctx, 2); |
| { |
| State = 572; |
| _localctx.id = Match(ARRAY_LOOP_TYPE); |
| } |
| break; |
| case CONSTANTS: |
| EnterOuterAlt(_localctx, 3); |
| { |
| State = 573; |
| _localctx.id = Match(CONSTANTS); |
| } |
| break; |
| case GLOBALS: |
| EnterOuterAlt(_localctx, 4); |
| { |
| State = 574; |
| _localctx.id = Match(GLOBALS); |
| } |
| break; |
| case CONTEXT: |
| EnterOuterAlt(_localctx, 5); |
| { |
| State = 575; |
| _localctx.id = Match(CONTEXT); |
| } |
| break; |
| case TYPE: |
| EnterOuterAlt(_localctx, 6); |
| { |
| State = 576; |
| _localctx.id = Match(TYPE); |
| } |
| break; |
| case DISCRIMINATEDTYPE: |
| EnterOuterAlt(_localctx, 7); |
| { |
| State = 577; |
| _localctx.id = Match(DISCRIMINATEDTYPE); |
| } |
| break; |
| case DATAIO: |
| EnterOuterAlt(_localctx, 8); |
| { |
| State = 578; |
| _localctx.id = Match(DATAIO); |
| } |
| break; |
| case ENUM: |
| EnterOuterAlt(_localctx, 9); |
| { |
| State = 579; |
| _localctx.id = Match(ENUM); |
| } |
| break; |
| case BATCHSET: |
| EnterOuterAlt(_localctx, 10); |
| { |
| State = 580; |
| _localctx.id = Match(BATCHSET); |
| } |
| break; |
| case ABSTRACT: |
| EnterOuterAlt(_localctx, 11); |
| { |
| State = 581; |
| _localctx.id = Match(ABSTRACT); |
| } |
| break; |
| case ARRAY: |
| EnterOuterAlt(_localctx, 12); |
| { |
| State = 582; |
| _localctx.id = Match(ARRAY); |
| } |
| break; |
| case ASSERT: |
| EnterOuterAlt(_localctx, 13); |
| { |
| State = 583; |
| _localctx.id = Match(ASSERT); |
| } |
| break; |
| case CHECKSUM: |
| EnterOuterAlt(_localctx, 14); |
| { |
| State = 584; |
| _localctx.id = Match(CHECKSUM); |
| } |
| break; |
| case CONST: |
| EnterOuterAlt(_localctx, 15); |
| { |
| State = 585; |
| _localctx.id = Match(CONST); |
| } |
| break; |
| case DISCRIMINATOR: |
| EnterOuterAlt(_localctx, 16); |
| { |
| State = 586; |
| _localctx.id = Match(DISCRIMINATOR); |
| } |
| break; |
| case IMPLICIT: |
| EnterOuterAlt(_localctx, 17); |
| { |
| State = 587; |
| _localctx.id = Match(IMPLICIT); |
| } |
| break; |
| case MANUALARRAY: |
| EnterOuterAlt(_localctx, 18); |
| { |
| State = 588; |
| _localctx.id = Match(MANUALARRAY); |
| } |
| break; |
| case MANUAL: |
| EnterOuterAlt(_localctx, 19); |
| { |
| State = 589; |
| _localctx.id = Match(MANUAL); |
| } |
| break; |
| case OPTIONAL: |
| EnterOuterAlt(_localctx, 20); |
| { |
| State = 590; |
| _localctx.id = Match(OPTIONAL); |
| } |
| break; |
| case PADDING: |
| EnterOuterAlt(_localctx, 21); |
| { |
| State = 591; |
| _localctx.id = Match(PADDING); |
| } |
| break; |
| case PEEK: |
| EnterOuterAlt(_localctx, 22); |
| { |
| State = 592; |
| _localctx.id = Match(PEEK); |
| } |
| break; |
| case RESERVED: |
| EnterOuterAlt(_localctx, 23); |
| { |
| State = 593; |
| _localctx.id = Match(RESERVED); |
| } |
| break; |
| case SIMPLE: |
| EnterOuterAlt(_localctx, 24); |
| { |
| State = 594; |
| _localctx.id = Match(SIMPLE); |
| } |
| break; |
| case STATE: |
| EnterOuterAlt(_localctx, 25); |
| { |
| State = 595; |
| _localctx.id = Match(STATE); |
| } |
| break; |
| case TYPESWITCH: |
| EnterOuterAlt(_localctx, 26); |
| { |
| State = 596; |
| _localctx.id = Match(TYPESWITCH); |
| } |
| break; |
| case UNKNOWN: |
| EnterOuterAlt(_localctx, 27); |
| { |
| State = 597; |
| _localctx.id = Match(UNKNOWN); |
| } |
| break; |
| case VALIDATION: |
| EnterOuterAlt(_localctx, 28); |
| { |
| State = 598; |
| _localctx.id = Match(VALIDATION); |
| } |
| break; |
| case VIRTUAL: |
| EnterOuterAlt(_localctx, 29); |
| { |
| State = 599; |
| _localctx.id = Match(VIRTUAL); |
| } |
| break; |
| case BIT: |
| EnterOuterAlt(_localctx, 30); |
| { |
| State = 600; |
| _localctx.id = Match(BIT); |
| } |
| break; |
| case BYTE: |
| EnterOuterAlt(_localctx, 31); |
| { |
| State = 601; |
| _localctx.id = Match(BYTE); |
| } |
| break; |
| case INT: |
| EnterOuterAlt(_localctx, 32); |
| { |
| State = 602; |
| _localctx.id = Match(INT); |
| } |
| break; |
| case VINT: |
| EnterOuterAlt(_localctx, 33); |
| { |
| State = 603; |
| _localctx.id = Match(VINT); |
| } |
| break; |
| case UINT: |
| EnterOuterAlt(_localctx, 34); |
| { |
| State = 604; |
| _localctx.id = Match(UINT); |
| } |
| break; |
| case VUINT: |
| EnterOuterAlt(_localctx, 35); |
| { |
| State = 605; |
| _localctx.id = Match(VUINT); |
| } |
| break; |
| case FLOAT: |
| EnterOuterAlt(_localctx, 36); |
| { |
| State = 606; |
| _localctx.id = Match(FLOAT); |
| } |
| break; |
| case UFLOAT: |
| EnterOuterAlt(_localctx, 37); |
| { |
| State = 607; |
| _localctx.id = Match(UFLOAT); |
| } |
| break; |
| case STRING: |
| EnterOuterAlt(_localctx, 38); |
| { |
| State = 608; |
| _localctx.id = Match(STRING); |
| } |
| break; |
| case VSTRING: |
| EnterOuterAlt(_localctx, 39); |
| { |
| State = 609; |
| _localctx.id = Match(VSTRING); |
| } |
| break; |
| case TIME: |
| EnterOuterAlt(_localctx, 40); |
| { |
| State = 610; |
| _localctx.id = Match(TIME); |
| } |
| break; |
| case DATE: |
| EnterOuterAlt(_localctx, 41); |
| { |
| State = 611; |
| _localctx.id = Match(DATE); |
| } |
| break; |
| case DATETIME: |
| EnterOuterAlt(_localctx, 42); |
| { |
| State = 612; |
| _localctx.id = Match(DATETIME); |
| } |
| break; |
| case SHOULD_FAIL: |
| EnterOuterAlt(_localctx, 43); |
| { |
| State = 613; |
| _localctx.id = Match(SHOULD_FAIL); |
| } |
| break; |
| default: |
| throw new NoViableAltException(this); |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public partial class BinaryOperatorContext : ParserRuleContext { |
| [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASTERISK() { return GetToken(MSpecParser.ASTERISK, 0); } |
| public BinaryOperatorContext(ParserRuleContext parent, int invokingState) |
| : base(parent, invokingState) |
| { |
| } |
| public override int RuleIndex { get { return RULE_binaryOperator; } } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void EnterRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.EnterBinaryOperator(this); |
| } |
| [System.Diagnostics.DebuggerNonUserCode] |
| public override void ExitRule(IParseTreeListener listener) { |
| IMSpecListener typedListener = listener as IMSpecListener; |
| if (typedListener != null) typedListener.ExitBinaryOperator(this); |
| } |
| } |
| |
| [RuleVersion(0)] |
| public BinaryOperatorContext binaryOperator() { |
| BinaryOperatorContext _localctx = new BinaryOperatorContext(Context, State); |
| EnterRule(_localctx, 90, RULE_binaryOperator); |
| int _la; |
| try { |
| EnterOuterAlt(_localctx, 1); |
| { |
| State = 616; |
| _la = TokenStream.LA(1); |
| if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 4328521472L) != 0)) ) { |
| ErrorHandler.RecoverInline(this); |
| } |
| else { |
| ErrorHandler.ReportMatch(this); |
| Consume(); |
| } |
| } |
| } |
| catch (RecognitionException re) { |
| _localctx.exception = re; |
| ErrorHandler.ReportError(this, re); |
| ErrorHandler.Recover(this, re); |
| } |
| finally { |
| ExitRule(); |
| } |
| return _localctx; |
| } |
| |
| public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { |
| switch (ruleIndex) { |
| case 41: return variableLiteral_sempred((VariableLiteralContext)_localctx, predIndex); |
| case 42: return innerExpression_sempred((InnerExpressionContext)_localctx, predIndex); |
| } |
| return true; |
| } |
| private bool variableLiteral_sempred(VariableLiteralContext _localctx, int predIndex) { |
| switch (predIndex) { |
| case 0: return Precpred(Context, 1); |
| } |
| return true; |
| } |
| private bool innerExpression_sempred(InnerExpressionContext _localctx, int predIndex) { |
| switch (predIndex) { |
| case 1: return Precpred(Context, 7); |
| case 2: return Precpred(Context, 5); |
| case 3: return Precpred(Context, 4); |
| case 4: return Precpred(Context, 6); |
| } |
| return true; |
| } |
| |
| private static int[] _serializedATN = { |
| 4,1,85,619,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7, |
| 7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14, |
| 2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21, |
| 2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28, |
| 2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35, |
| 2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42, |
| 2,43,7,43,2,44,7,44,2,45,7,45,1,0,3,0,94,8,0,1,0,3,0,97,8,0,1,0,3,0,100, |
| 8,0,1,0,5,0,103,8,0,10,0,12,0,106,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1, |
| 5,1,116,8,1,10,1,12,1,119,9,1,1,1,1,1,1,2,1,2,1,2,5,2,126,8,2,10,2,12, |
| 2,129,9,2,1,2,1,2,1,3,1,3,1,3,5,3,136,8,3,10,3,12,3,139,9,3,1,3,1,3,1, |
| 4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,3,5,153,8,5,1,5,1,5,1,5,5,5,158, |
| 8,5,10,5,12,5,161,9,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,169,8,5,1,5,1,5,1,5, |
| 5,5,174,8,5,10,5,12,5,177,9,5,1,5,1,5,3,5,181,8,5,1,5,1,5,1,5,1,5,1,5, |
| 3,5,188,8,5,1,5,1,5,5,5,192,8,5,10,5,12,5,195,9,5,1,5,1,5,1,5,1,5,1,5, |
| 1,5,3,5,203,8,5,1,5,1,5,1,5,3,5,208,8,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1, |
| 7,1,7,4,7,219,8,7,11,7,12,7,220,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,3,8,231, |
| 8,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1, |
| 9,1,9,1,9,1,9,1,9,1,9,3,9,255,8,9,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1, |
| 11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,14,1, |
| 14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,17,1, |
| 17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1, |
| 19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,3,20,316,8,20,1,21,1,21, |
| 1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,3,22,328,8,22,1,23,1,23,1,23,1, |
| 23,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,26,1,26,1,26,5,26,344,8,26,10, |
| 26,12,26,347,9,26,1,27,1,27,1,27,1,28,1,28,1,28,3,28,355,8,28,1,28,1,28, |
| 1,28,3,28,360,8,28,1,29,1,29,1,29,1,29,1,29,1,30,1,30,3,30,369,8,30,1, |
| 30,1,30,1,30,1,30,1,30,3,30,376,8,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31, |
| 3,31,385,8,31,1,31,3,31,388,8,31,1,32,1,32,3,32,392,8,32,1,32,3,32,395, |
| 8,32,1,32,1,32,1,32,1,32,1,32,3,32,402,8,32,1,32,1,32,5,32,406,8,32,10, |
| 32,12,32,409,9,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1, |
| 33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,3,33,429,8,33,1,33,1,33,1,33,3,33, |
| 434,8,33,1,34,1,34,1,34,1,34,1,35,5,35,441,8,35,10,35,12,35,444,9,35,1, |
| 36,1,36,1,36,1,37,1,37,1,37,5,37,452,8,37,10,37,12,37,455,9,37,1,38,1, |
| 38,1,38,1,38,1,38,3,38,462,8,38,1,39,1,39,1,39,5,39,467,8,39,10,39,12, |
| 39,470,9,39,1,40,1,40,1,40,5,40,475,8,40,10,40,12,40,478,9,40,1,41,1,41, |
| 1,41,1,41,1,41,3,41,485,8,41,1,41,1,41,4,41,489,8,41,11,41,12,41,490,1, |
| 41,4,41,494,8,41,11,41,12,41,495,1,41,5,41,499,8,41,10,41,12,41,502,9, |
| 41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,5,42,512,8,42,10,42,12,42,515, |
| 9,42,3,42,517,8,42,1,42,3,42,520,8,42,1,42,1,42,1,42,1,42,3,42,526,8,42, |
| 1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,538,8,42,1,42,1, |
| 42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,4, |
| 42,555,8,42,11,42,12,42,556,1,42,4,42,560,8,42,11,42,12,42,561,1,42,5, |
| 42,565,8,42,10,42,12,42,568,9,42,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1, |
| 44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1, |
| 44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1, |
| 44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,615,8,44,1,45,1,45, |
| 1,45,0,2,82,84,46,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36, |
| 38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84, |
| 86,88,90,0,2,1,0,75,79,2,0,8,24,32,32,706,0,93,1,0,0,0,2,109,1,0,0,0,4, |
| 122,1,0,0,0,6,132,1,0,0,0,8,142,1,0,0,0,10,207,1,0,0,0,12,209,1,0,0,0, |
| 14,214,1,0,0,0,16,224,1,0,0,0,18,254,1,0,0,0,20,256,1,0,0,0,22,260,1,0, |
| 0,0,24,266,1,0,0,0,26,271,1,0,0,0,28,276,1,0,0,0,30,281,1,0,0,0,32,285, |
| 1,0,0,0,34,290,1,0,0,0,36,295,1,0,0,0,38,304,1,0,0,0,40,311,1,0,0,0,42, |
| 317,1,0,0,0,44,323,1,0,0,0,46,329,1,0,0,0,48,333,1,0,0,0,50,337,1,0,0, |
| 0,52,340,1,0,0,0,54,348,1,0,0,0,56,351,1,0,0,0,58,361,1,0,0,0,60,366,1, |
| 0,0,0,62,387,1,0,0,0,64,389,1,0,0,0,66,433,1,0,0,0,68,435,1,0,0,0,70,442, |
| 1,0,0,0,72,445,1,0,0,0,74,448,1,0,0,0,76,461,1,0,0,0,78,463,1,0,0,0,80, |
| 471,1,0,0,0,82,484,1,0,0,0,84,537,1,0,0,0,86,569,1,0,0,0,88,614,1,0,0, |
| 0,90,616,1,0,0,0,92,94,3,2,1,0,93,92,1,0,0,0,93,94,1,0,0,0,94,96,1,0,0, |
| 0,95,97,3,4,2,0,96,95,1,0,0,0,96,97,1,0,0,0,97,99,1,0,0,0,98,100,3,6,3, |
| 0,99,98,1,0,0,0,99,100,1,0,0,0,100,104,1,0,0,0,101,103,3,8,4,0,102,101, |
| 1,0,0,0,103,106,1,0,0,0,104,102,1,0,0,0,104,105,1,0,0,0,105,107,1,0,0, |
| 0,106,104,1,0,0,0,107,108,5,0,0,1,108,1,1,0,0,0,109,110,5,26,0,0,110,117, |
| 5,33,0,0,111,112,5,26,0,0,112,113,3,28,14,0,113,114,5,27,0,0,114,116,1, |
| 0,0,0,115,111,1,0,0,0,116,119,1,0,0,0,117,115,1,0,0,0,117,118,1,0,0,0, |
| 118,120,1,0,0,0,119,117,1,0,0,0,120,121,5,27,0,0,121,3,1,0,0,0,122,123, |
| 5,26,0,0,123,127,5,34,0,0,124,126,3,12,6,0,125,124,1,0,0,0,126,129,1,0, |
| 0,0,127,125,1,0,0,0,127,128,1,0,0,0,128,130,1,0,0,0,129,127,1,0,0,0,130, |
| 131,5,27,0,0,131,5,1,0,0,0,132,133,5,26,0,0,133,137,5,35,0,0,134,136,3, |
| 12,6,0,135,134,1,0,0,0,136,139,1,0,0,0,137,135,1,0,0,0,137,138,1,0,0,0, |
| 138,140,1,0,0,0,139,137,1,0,0,0,140,141,5,27,0,0,141,7,1,0,0,0,142,143, |
| 5,26,0,0,143,144,3,10,5,0,144,145,5,27,0,0,145,9,1,0,0,0,146,147,5,36, |
| 0,0,147,152,3,88,44,0,148,149,5,28,0,0,149,150,3,74,37,0,150,151,5,29, |
| 0,0,151,153,1,0,0,0,152,148,1,0,0,0,152,153,1,0,0,0,153,154,1,0,0,0,154, |
| 159,3,70,35,0,155,158,3,12,6,0,156,158,3,14,7,0,157,155,1,0,0,0,157,156, |
| 1,0,0,0,158,161,1,0,0,0,159,157,1,0,0,0,159,160,1,0,0,0,160,208,1,0,0, |
| 0,161,159,1,0,0,0,162,163,5,37,0,0,163,168,3,88,44,0,164,165,5,28,0,0, |
| 165,166,3,74,37,0,166,167,5,29,0,0,167,169,1,0,0,0,168,164,1,0,0,0,168, |
| 169,1,0,0,0,169,170,1,0,0,0,170,175,3,70,35,0,171,174,3,12,6,0,172,174, |
| 3,14,7,0,173,171,1,0,0,0,173,172,1,0,0,0,174,177,1,0,0,0,175,173,1,0,0, |
| 0,175,176,1,0,0,0,176,208,1,0,0,0,177,175,1,0,0,0,178,180,5,39,0,0,179, |
| 181,3,66,33,0,180,179,1,0,0,0,180,181,1,0,0,0,181,182,1,0,0,0,182,187, |
| 3,88,44,0,183,184,5,28,0,0,184,185,3,74,37,0,185,186,5,29,0,0,186,188, |
| 1,0,0,0,187,183,1,0,0,0,187,188,1,0,0,0,188,189,1,0,0,0,189,193,3,70,35, |
| 0,190,192,3,60,30,0,191,190,1,0,0,0,192,195,1,0,0,0,193,191,1,0,0,0,193, |
| 194,1,0,0,0,194,208,1,0,0,0,195,193,1,0,0,0,196,197,5,38,0,0,197,202,3, |
| 88,44,0,198,199,5,28,0,0,199,200,3,74,37,0,200,201,5,29,0,0,201,203,1, |
| 0,0,0,202,198,1,0,0,0,202,203,1,0,0,0,203,204,1,0,0,0,204,205,3,70,35, |
| 0,205,206,3,16,8,0,206,208,1,0,0,0,207,146,1,0,0,0,207,162,1,0,0,0,207, |
| 178,1,0,0,0,207,196,1,0,0,0,208,11,1,0,0,0,209,210,5,26,0,0,210,211,3, |
| 18,9,0,211,212,3,70,35,0,212,213,5,27,0,0,213,13,1,0,0,0,214,215,5,26, |
| 0,0,215,216,5,40,0,0,216,218,3,70,35,0,217,219,3,12,6,0,218,217,1,0,0, |
| 0,219,220,1,0,0,0,220,218,1,0,0,0,220,221,1,0,0,0,221,222,1,0,0,0,222, |
| 223,5,27,0,0,223,15,1,0,0,0,224,225,5,26,0,0,225,230,3,52,26,0,226,227, |
| 5,26,0,0,227,228,3,78,39,0,228,229,5,27,0,0,229,231,1,0,0,0,230,226,1, |
| 0,0,0,230,231,1,0,0,0,231,232,1,0,0,0,232,233,5,27,0,0,233,17,1,0,0,0, |
| 234,255,3,20,10,0,235,255,3,22,11,0,236,255,3,24,12,0,237,255,3,26,13, |
| 0,238,255,3,28,14,0,239,255,3,30,15,0,240,255,3,32,16,0,241,255,3,34,17, |
| 0,242,255,3,36,18,0,243,255,3,38,19,0,244,255,3,40,20,0,245,255,3,42,21, |
| 0,246,255,3,44,22,0,247,255,3,46,23,0,248,255,3,48,24,0,249,255,3,50,25, |
| 0,250,255,3,52,26,0,251,255,3,54,27,0,252,255,3,56,28,0,253,255,3,58,29, |
| 0,254,234,1,0,0,0,254,235,1,0,0,0,254,236,1,0,0,0,254,237,1,0,0,0,254, |
| 238,1,0,0,0,254,239,1,0,0,0,254,240,1,0,0,0,254,241,1,0,0,0,254,242,1, |
| 0,0,0,254,243,1,0,0,0,254,244,1,0,0,0,254,245,1,0,0,0,254,246,1,0,0,0, |
| 254,247,1,0,0,0,254,248,1,0,0,0,254,249,1,0,0,0,254,250,1,0,0,0,254,251, |
| 1,0,0,0,254,252,1,0,0,0,254,253,1,0,0,0,255,19,1,0,0,0,256,257,5,41,0, |
| 0,257,258,3,62,31,0,258,259,3,88,44,0,259,21,1,0,0,0,260,261,5,42,0,0, |
| 261,262,3,62,31,0,262,263,3,88,44,0,263,264,5,74,0,0,264,265,3,76,38,0, |
| 265,23,1,0,0,0,266,267,5,43,0,0,267,268,3,62,31,0,268,269,3,88,44,0,269, |
| 270,3,76,38,0,270,25,1,0,0,0,271,272,5,44,0,0,272,273,3,66,33,0,273,274, |
| 3,88,44,0,274,275,3,76,38,0,275,27,1,0,0,0,276,277,5,45,0,0,277,278,3, |
| 62,31,0,278,279,3,88,44,0,279,280,3,86,43,0,280,29,1,0,0,0,281,282,5,46, |
| 0,0,282,283,3,62,31,0,283,284,3,88,44,0,284,31,1,0,0,0,285,286,5,39,0, |
| 0,286,287,3,62,31,0,287,288,3,88,44,0,288,289,3,88,44,0,289,33,1,0,0,0, |
| 290,291,5,47,0,0,291,292,3,66,33,0,292,293,3,88,44,0,293,294,3,76,38,0, |
| 294,35,1,0,0,0,295,296,5,48,0,0,296,297,3,62,31,0,297,298,3,88,44,0,298, |
| 299,5,74,0,0,299,300,3,76,38,0,300,301,3,76,38,0,301,302,3,76,38,0,302, |
| 303,3,76,38,0,303,37,1,0,0,0,304,305,5,49,0,0,305,306,3,62,31,0,306,307, |
| 3,88,44,0,307,308,3,76,38,0,308,309,3,76,38,0,309,310,3,76,38,0,310,39, |
| 1,0,0,0,311,312,5,50,0,0,312,313,3,62,31,0,313,315,3,88,44,0,314,316,3, |
| 76,38,0,315,314,1,0,0,0,315,316,1,0,0,0,316,41,1,0,0,0,317,318,5,51,0, |
| 0,318,319,3,66,33,0,319,320,3,88,44,0,320,321,3,76,38,0,321,322,3,76,38, |
| 0,322,43,1,0,0,0,323,324,5,52,0,0,324,325,3,62,31,0,325,327,3,88,44,0, |
| 326,328,3,76,38,0,327,326,1,0,0,0,327,328,1,0,0,0,328,45,1,0,0,0,329,330, |
| 5,53,0,0,330,331,3,66,33,0,331,332,3,76,38,0,332,47,1,0,0,0,333,334,5, |
| 54,0,0,334,335,3,62,31,0,335,336,3,88,44,0,336,49,1,0,0,0,337,338,5,55, |
| 0,0,338,339,3,88,44,0,339,51,1,0,0,0,340,341,5,56,0,0,341,345,3,80,40, |
| 0,342,344,3,64,32,0,343,342,1,0,0,0,344,347,1,0,0,0,345,343,1,0,0,0,345, |
| 346,1,0,0,0,346,53,1,0,0,0,347,345,1,0,0,0,348,349,5,57,0,0,349,350,3, |
| 66,33,0,350,55,1,0,0,0,351,352,5,58,0,0,352,354,3,76,38,0,353,355,5,79, |
| 0,0,354,353,1,0,0,0,354,355,1,0,0,0,355,359,1,0,0,0,356,357,5,73,0,0,357, |
| 358,5,1,0,0,358,360,5,78,0,0,359,356,1,0,0,0,359,360,1,0,0,0,360,57,1, |
| 0,0,0,361,362,5,59,0,0,362,363,3,62,31,0,363,364,3,88,44,0,364,365,3,76, |
| 38,0,365,59,1,0,0,0,366,368,5,26,0,0,367,369,3,76,38,0,368,367,1,0,0,0, |
| 368,369,1,0,0,0,369,370,1,0,0,0,370,375,5,80,0,0,371,372,5,26,0,0,372, |
| 373,3,78,39,0,373,374,5,27,0,0,374,376,1,0,0,0,375,371,1,0,0,0,375,376, |
| 1,0,0,0,376,377,1,0,0,0,377,378,5,27,0,0,378,61,1,0,0,0,379,384,5,80,0, |
| 0,380,381,5,28,0,0,381,382,3,78,39,0,382,383,5,29,0,0,383,385,1,0,0,0, |
| 384,380,1,0,0,0,384,385,1,0,0,0,385,388,1,0,0,0,386,388,3,66,33,0,387, |
| 379,1,0,0,0,387,386,1,0,0,0,388,63,1,0,0,0,389,391,5,26,0,0,390,392,3, |
| 78,39,0,391,390,1,0,0,0,391,392,1,0,0,0,392,394,1,0,0,0,393,395,5,32,0, |
| 0,394,393,1,0,0,0,394,395,1,0,0,0,395,396,1,0,0,0,396,401,5,80,0,0,397, |
| 398,5,28,0,0,398,399,3,74,37,0,399,400,5,29,0,0,400,402,1,0,0,0,401,397, |
| 1,0,0,0,401,402,1,0,0,0,402,407,1,0,0,0,403,406,3,12,6,0,404,406,3,14, |
| 7,0,405,403,1,0,0,0,405,404,1,0,0,0,406,409,1,0,0,0,407,405,1,0,0,0,407, |
| 408,1,0,0,0,408,410,1,0,0,0,409,407,1,0,0,0,410,411,5,27,0,0,411,65,1, |
| 0,0,0,412,434,5,60,0,0,413,434,5,61,0,0,414,415,5,62,0,0,415,434,5,75, |
| 0,0,416,434,5,63,0,0,417,418,5,64,0,0,418,434,5,75,0,0,419,434,5,65,0, |
| 0,420,421,5,66,0,0,421,434,5,75,0,0,422,423,5,67,0,0,423,434,5,75,0,0, |
| 424,425,5,68,0,0,425,434,5,75,0,0,426,428,5,69,0,0,427,429,3,76,38,0,428, |
| 427,1,0,0,0,428,429,1,0,0,0,429,434,1,0,0,0,430,434,5,70,0,0,431,434,5, |
| 71,0,0,432,434,5,72,0,0,433,412,1,0,0,0,433,413,1,0,0,0,433,414,1,0,0, |
| 0,433,416,1,0,0,0,433,417,1,0,0,0,433,419,1,0,0,0,433,420,1,0,0,0,433, |
| 422,1,0,0,0,433,424,1,0,0,0,433,426,1,0,0,0,433,430,1,0,0,0,433,431,1, |
| 0,0,0,433,432,1,0,0,0,434,67,1,0,0,0,435,436,5,80,0,0,436,437,5,1,0,0, |
| 437,438,3,76,38,0,438,69,1,0,0,0,439,441,3,68,34,0,440,439,1,0,0,0,441, |
| 444,1,0,0,0,442,440,1,0,0,0,442,443,1,0,0,0,443,71,1,0,0,0,444,442,1,0, |
| 0,0,445,446,3,62,31,0,446,447,3,88,44,0,447,73,1,0,0,0,448,453,3,72,36, |
| 0,449,450,5,2,0,0,450,452,3,72,36,0,451,449,1,0,0,0,452,455,1,0,0,0,453, |
| 451,1,0,0,0,453,454,1,0,0,0,454,75,1,0,0,0,455,453,1,0,0,0,456,457,5,25, |
| 0,0,457,458,3,84,42,0,458,459,5,25,0,0,459,462,1,0,0,0,460,462,5,32,0, |
| 0,461,456,1,0,0,0,461,460,1,0,0,0,462,77,1,0,0,0,463,468,3,76,38,0,464, |
| 465,5,2,0,0,465,467,3,76,38,0,466,464,1,0,0,0,467,470,1,0,0,0,468,466, |
| 1,0,0,0,468,469,1,0,0,0,469,79,1,0,0,0,470,468,1,0,0,0,471,476,3,82,41, |
| 0,472,473,5,2,0,0,473,475,3,82,41,0,474,472,1,0,0,0,475,478,1,0,0,0,476, |
| 474,1,0,0,0,476,477,1,0,0,0,477,81,1,0,0,0,478,476,1,0,0,0,479,480,6,41, |
| -1,0,480,485,5,80,0,0,481,482,5,80,0,0,482,483,5,3,0,0,483,485,3,82,41, |
| 2,484,479,1,0,0,0,484,481,1,0,0,0,485,500,1,0,0,0,486,488,10,1,0,0,487, |
| 489,5,26,0,0,488,487,1,0,0,0,489,490,1,0,0,0,490,488,1,0,0,0,490,491,1, |
| 0,0,0,491,493,1,0,0,0,492,494,5,75,0,0,493,492,1,0,0,0,494,495,1,0,0,0, |
| 495,493,1,0,0,0,495,496,1,0,0,0,496,497,1,0,0,0,497,499,5,27,0,0,498,486, |
| 1,0,0,0,499,502,1,0,0,0,500,498,1,0,0,0,500,501,1,0,0,0,501,83,1,0,0,0, |
| 502,500,1,0,0,0,503,504,6,42,-1,0,504,538,3,86,43,0,505,538,5,74,0,0,506, |
| 519,3,88,44,0,507,516,5,28,0,0,508,513,3,84,42,0,509,510,5,2,0,0,510,512, |
| 3,84,42,0,511,509,1,0,0,0,512,515,1,0,0,0,513,511,1,0,0,0,513,514,1,0, |
| 0,0,514,517,1,0,0,0,515,513,1,0,0,0,516,508,1,0,0,0,516,517,1,0,0,0,517, |
| 518,1,0,0,0,518,520,5,29,0,0,519,507,1,0,0,0,519,520,1,0,0,0,520,525,1, |
| 0,0,0,521,522,5,26,0,0,522,523,3,84,42,0,523,524,5,27,0,0,524,526,1,0, |
| 0,0,525,521,1,0,0,0,525,526,1,0,0,0,526,538,1,0,0,0,527,528,5,28,0,0,528, |
| 529,3,84,42,0,529,530,5,29,0,0,530,538,1,0,0,0,531,532,5,6,0,0,532,533, |
| 3,84,42,0,533,534,5,6,0,0,534,538,1,0,0,0,535,536,5,7,0,0,536,538,3,84, |
| 42,1,537,503,1,0,0,0,537,505,1,0,0,0,537,506,1,0,0,0,537,527,1,0,0,0,537, |
| 531,1,0,0,0,537,535,1,0,0,0,538,566,1,0,0,0,539,540,10,7,0,0,540,541,5, |
| 3,0,0,541,565,3,84,42,8,542,543,10,5,0,0,543,544,3,90,45,0,544,545,3,84, |
| 42,6,545,565,1,0,0,0,546,547,10,4,0,0,547,548,5,4,0,0,548,549,3,84,42, |
| 0,549,550,5,5,0,0,550,551,3,84,42,5,551,565,1,0,0,0,552,554,10,6,0,0,553, |
| 555,5,26,0,0,554,553,1,0,0,0,555,556,1,0,0,0,556,554,1,0,0,0,556,557,1, |
| 0,0,0,557,559,1,0,0,0,558,560,5,75,0,0,559,558,1,0,0,0,560,561,1,0,0,0, |
| 561,559,1,0,0,0,561,562,1,0,0,0,562,563,1,0,0,0,563,565,5,27,0,0,564,539, |
| 1,0,0,0,564,542,1,0,0,0,564,546,1,0,0,0,564,552,1,0,0,0,565,568,1,0,0, |
| 0,566,564,1,0,0,0,566,567,1,0,0,0,567,85,1,0,0,0,568,566,1,0,0,0,569,570, |
| 7,0,0,0,570,87,1,0,0,0,571,615,5,80,0,0,572,615,5,74,0,0,573,615,5,33, |
| 0,0,574,615,5,34,0,0,575,615,5,35,0,0,576,615,5,36,0,0,577,615,5,37,0, |
| 0,578,615,5,38,0,0,579,615,5,39,0,0,580,615,5,40,0,0,581,615,5,41,0,0, |
| 582,615,5,42,0,0,583,615,5,43,0,0,584,615,5,44,0,0,585,615,5,45,0,0,586, |
| 615,5,46,0,0,587,615,5,47,0,0,588,615,5,48,0,0,589,615,5,49,0,0,590,615, |
| 5,50,0,0,591,615,5,51,0,0,592,615,5,52,0,0,593,615,5,53,0,0,594,615,5, |
| 54,0,0,595,615,5,55,0,0,596,615,5,56,0,0,597,615,5,57,0,0,598,615,5,58, |
| 0,0,599,615,5,59,0,0,600,615,5,60,0,0,601,615,5,61,0,0,602,615,5,62,0, |
| 0,603,615,5,63,0,0,604,615,5,64,0,0,605,615,5,65,0,0,606,615,5,66,0,0, |
| 607,615,5,67,0,0,608,615,5,68,0,0,609,615,5,69,0,0,610,615,5,70,0,0,611, |
| 615,5,71,0,0,612,615,5,72,0,0,613,615,5,73,0,0,614,571,1,0,0,0,614,572, |
| 1,0,0,0,614,573,1,0,0,0,614,574,1,0,0,0,614,575,1,0,0,0,614,576,1,0,0, |
| 0,614,577,1,0,0,0,614,578,1,0,0,0,614,579,1,0,0,0,614,580,1,0,0,0,614, |
| 581,1,0,0,0,614,582,1,0,0,0,614,583,1,0,0,0,614,584,1,0,0,0,614,585,1, |
| 0,0,0,614,586,1,0,0,0,614,587,1,0,0,0,614,588,1,0,0,0,614,589,1,0,0,0, |
| 614,590,1,0,0,0,614,591,1,0,0,0,614,592,1,0,0,0,614,593,1,0,0,0,614,594, |
| 1,0,0,0,614,595,1,0,0,0,614,596,1,0,0,0,614,597,1,0,0,0,614,598,1,0,0, |
| 0,614,599,1,0,0,0,614,600,1,0,0,0,614,601,1,0,0,0,614,602,1,0,0,0,614, |
| 603,1,0,0,0,614,604,1,0,0,0,614,605,1,0,0,0,614,606,1,0,0,0,614,607,1, |
| 0,0,0,614,608,1,0,0,0,614,609,1,0,0,0,614,610,1,0,0,0,614,611,1,0,0,0, |
| 614,612,1,0,0,0,614,613,1,0,0,0,615,89,1,0,0,0,616,617,7,1,0,0,617,91, |
| 1,0,0,0,56,93,96,99,104,117,127,137,152,157,159,168,173,175,180,187,193, |
| 202,207,220,230,254,315,327,345,354,359,368,375,384,387,391,394,401,405, |
| 407,428,433,442,453,461,468,476,484,490,495,500,513,516,519,525,537,556, |
| 561,564,566,614 |
| }; |
| |
| public static readonly ATN _ATN = |
| new ATNDeserializer().Deserialize(_serializedATN); |
| |
| |
| } |
| } // namespace org.apache.plc4net.tools.codegen.grammar |