blob: af689b489214627babb4fc762c84149fb7de4640 [file]
//
// 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/expression/Expression.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 ExpressionParser : 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,
T__24=25, T__25=26, T__26=27, Null=28, Bool=29, Number=30, Identifier=31,
String=32, Space=33, HexExpression=34;
public const int
RULE_expressionString = 0, RULE_expression = 1, RULE_identifierSegment = 2,
RULE_identifierSegmentArguments = 3, RULE_identifierSegmentIndexes = 4,
RULE_identifierSegmentRest = 5, RULE_arguments = 6, RULE_indexes = 7;
public static readonly string[] ruleNames = {
"expressionString", "expression", "identifierSegment", "identifierSegmentArguments",
"identifierSegmentIndexes", "identifierSegmentRest", "arguments", "indexes"
};
private static readonly string[] _LiteralNames = {
null, "'-'", "'!'", "'^'", "'*'", "'/'", "'%'", "'+'", "'>>'", "'<<'",
"'>='", "'<='", "'>'", "'<'", "'=='", "'!='", "'&&'", "'&'", "'||'", "'|'",
"'?'", "':'", "'('", "')'", "'.'", "','", "'['", "']'", "'null'"
};
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, null, null, null, "Null", "Bool", "Number", "Identifier", "String",
"Space", "HexExpression"
};
public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
[NotNull]
public override IVocabulary Vocabulary
{
get
{
return DefaultVocabulary;
}
}
public override string GrammarFileName { get { return "Expression.g4"; } }
public override string[] RuleNames { get { return ruleNames; } }
public override int[] SerializedAtn { get { return _serializedATN; } }
static ExpressionParser() {
decisionToDFA = new DFA[_ATN.NumberOfDecisions];
for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
}
}
public ExpressionParser(ITokenStream input) : this(input, Console.Out, Console.Error) { }
public ExpressionParser(ITokenStream input, TextWriter output, TextWriter errorOutput)
: base(input, output, errorOutput)
{
Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
}
public partial class ExpressionStringContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext<ExpressionContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Eof() { return GetToken(ExpressionParser.Eof, 0); }
public ExpressionStringContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_expressionString; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterExpressionString(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitExpressionString(this);
}
}
[RuleVersion(0)]
public ExpressionStringContext expressionString() {
ExpressionStringContext _localctx = new ExpressionStringContext(Context, State);
EnterRule(_localctx, 0, RULE_expressionString);
try {
EnterOuterAlt(_localctx, 1);
{
State = 16;
expression(0);
State = 17;
Match(Eof);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ExpressionContext : ParserRuleContext {
public ExpressionContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_expression; } }
public ExpressionContext() { }
public virtual void CopyFrom(ExpressionContext context) {
base.CopyFrom(context);
}
}
public partial class HexExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode HexExpression() { return GetToken(ExpressionParser.HexExpression, 0); }
public HexExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterHexExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitHexExpression(this);
}
}
public partial class BitShiftExpressionContext : ExpressionContext {
public IToken op;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public BitShiftExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterBitShiftExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitBitShiftExpression(this);
}
}
public partial class BoolExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Bool() { return GetToken(ExpressionParser.Bool, 0); }
public BoolExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterBoolExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitBoolExpression(this);
}
}
public partial class BitOrExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public BitOrExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterBitOrExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitBitOrExpression(this);
}
}
public partial class NumberExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Number() { return GetToken(ExpressionParser.Number, 0); }
public NumberExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterNumberExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitNumberExpression(this);
}
}
public partial class IdentifierExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public IdentifierSegmentContext identifierSegment() {
return GetRuleContext<IdentifierSegmentContext>(0);
}
public IdentifierExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIdentifierExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIdentifierExpression(this);
}
}
public partial class NotExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext<ExpressionContext>(0);
}
public NotExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterNotExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitNotExpression(this);
}
}
public partial class OrExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public OrExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterOrExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitOrExpression(this);
}
}
public partial class UnaryMinusExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext<ExpressionContext>(0);
}
public UnaryMinusExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterUnaryMinusExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitUnaryMinusExpression(this);
}
}
public partial class PowerExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public PowerExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterPowerExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitPowerExpression(this);
}
}
public partial class EqExpressionContext : ExpressionContext {
public IToken op;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public EqExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterEqExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitEqExpression(this);
}
}
public partial class AndExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public AndExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterAndExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitAndExpression(this);
}
}
public partial class StringExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode String() { return GetToken(ExpressionParser.String, 0); }
[System.Diagnostics.DebuggerNonUserCode] public IndexesContext indexes() {
return GetRuleContext<IndexesContext>(0);
}
public StringExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterStringExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitStringExpression(this);
}
}
public partial class BitAndExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public BitAndExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterBitAndExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitBitAndExpression(this);
}
}
public partial class ExpressionExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression() {
return GetRuleContext<ExpressionContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public IndexesContext indexes() {
return GetRuleContext<IndexesContext>(0);
}
public ExpressionExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterExpressionExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitExpressionExpression(this);
}
}
public partial class AddExpressionContext : ExpressionContext {
public IToken op;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public AddExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterAddExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitAddExpression(this);
}
}
public partial class CompExpressionContext : ExpressionContext {
public IToken op;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public CompExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterCompExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitCompExpression(this);
}
}
public partial class NullExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Null() { return GetToken(ExpressionParser.Null, 0); }
public NullExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterNullExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitNullExpression(this);
}
}
public partial class MultExpressionContext : ExpressionContext {
public IToken op;
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public MultExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterMultExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitMultExpression(this);
}
}
public partial class IfExpressionContext : ExpressionContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public IfExpressionContext(ExpressionContext context) { CopyFrom(context); }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIfExpression(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIfExpression(this);
}
}
[RuleVersion(0)]
public ExpressionContext expression() {
return expression(0);
}
private ExpressionContext expression(int _p) {
ParserRuleContext _parentctx = Context;
int _parentState = State;
ExpressionContext _localctx = new ExpressionContext(Context, _parentState);
ExpressionContext _prevctx = _localctx;
int _startState = 2;
EnterRecursionRule(_localctx, 2, RULE_expression, _p);
int _la;
try {
int _alt;
EnterOuterAlt(_localctx, 1);
{
State = 39;
ErrorHandler.Sync(this);
switch (TokenStream.LA(1)) {
case T__0:
{
_localctx = new UnaryMinusExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 20;
Match(T__0);
State = 21;
expression(20);
}
break;
case T__1:
{
_localctx = new NotExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 22;
Match(T__1);
State = 23;
expression(19);
}
break;
case Number:
{
_localctx = new NumberExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 24;
Match(Number);
}
break;
case HexExpression:
{
_localctx = new HexExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 25;
Match(HexExpression);
}
break;
case Bool:
{
_localctx = new BoolExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 26;
Match(Bool);
}
break;
case Null:
{
_localctx = new NullExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 27;
Match(Null);
}
break;
case Identifier:
{
_localctx = new IdentifierExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 28;
identifierSegment();
}
break;
case String:
{
_localctx = new StringExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 29;
Match(String);
State = 31;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,0,Context) ) {
case 1:
{
State = 30;
indexes();
}
break;
}
}
break;
case T__21:
{
_localctx = new ExpressionExpressionContext(_localctx);
Context = _localctx;
_prevctx = _localctx;
State = 33;
Match(T__21);
State = 34;
expression(0);
State = 35;
Match(T__22);
State = 37;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,1,Context) ) {
case 1:
{
State = 36;
indexes();
}
break;
}
}
break;
default:
throw new NoViableAltException(this);
}
Context.Stop = TokenStream.LT(-1);
State = 79;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,4,Context);
while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( ParseListeners!=null )
TriggerExitRuleEvent();
_prevctx = _localctx;
{
State = 77;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,3,Context) ) {
case 1:
{
_localctx = new PowerExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 41;
if (!(Precpred(Context, 18))) throw new FailedPredicateException(this, "Precpred(Context, 18)");
State = 42;
Match(T__2);
State = 43;
expression(18);
}
break;
case 2:
{
_localctx = new MultExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 44;
if (!(Precpred(Context, 17))) throw new FailedPredicateException(this, "Precpred(Context, 17)");
State = 45;
((MultExpressionContext)_localctx).op = TokenStream.LT(1);
_la = TokenStream.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 112L) != 0)) ) {
((MultExpressionContext)_localctx).op = ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
State = 46;
expression(18);
}
break;
case 3:
{
_localctx = new AddExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 47;
if (!(Precpred(Context, 16))) throw new FailedPredicateException(this, "Precpred(Context, 16)");
State = 48;
((AddExpressionContext)_localctx).op = TokenStream.LT(1);
_la = TokenStream.LA(1);
if ( !(_la==T__0 || _la==T__6) ) {
((AddExpressionContext)_localctx).op = ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
State = 49;
expression(17);
}
break;
case 4:
{
_localctx = new BitShiftExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 50;
if (!(Precpred(Context, 15))) throw new FailedPredicateException(this, "Precpred(Context, 15)");
State = 51;
((BitShiftExpressionContext)_localctx).op = TokenStream.LT(1);
_la = TokenStream.LA(1);
if ( !(_la==T__7 || _la==T__8) ) {
((BitShiftExpressionContext)_localctx).op = ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
State = 52;
expression(16);
}
break;
case 5:
{
_localctx = new CompExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 53;
if (!(Precpred(Context, 14))) throw new FailedPredicateException(this, "Precpred(Context, 14)");
State = 54;
((CompExpressionContext)_localctx).op = TokenStream.LT(1);
_la = TokenStream.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 15360L) != 0)) ) {
((CompExpressionContext)_localctx).op = ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
State = 55;
expression(15);
}
break;
case 6:
{
_localctx = new EqExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 56;
if (!(Precpred(Context, 13))) throw new FailedPredicateException(this, "Precpred(Context, 13)");
State = 57;
((EqExpressionContext)_localctx).op = TokenStream.LT(1);
_la = TokenStream.LA(1);
if ( !(_la==T__13 || _la==T__14) ) {
((EqExpressionContext)_localctx).op = ErrorHandler.RecoverInline(this);
}
else {
ErrorHandler.ReportMatch(this);
Consume();
}
State = 58;
expression(14);
}
break;
case 7:
{
_localctx = new AndExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 59;
if (!(Precpred(Context, 12))) throw new FailedPredicateException(this, "Precpred(Context, 12)");
State = 60;
Match(T__15);
State = 61;
expression(13);
}
break;
case 8:
{
_localctx = new BitAndExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 62;
if (!(Precpred(Context, 11))) throw new FailedPredicateException(this, "Precpred(Context, 11)");
State = 63;
Match(T__16);
State = 64;
expression(12);
}
break;
case 9:
{
_localctx = new OrExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 65;
if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)");
State = 66;
Match(T__17);
State = 67;
expression(11);
}
break;
case 10:
{
_localctx = new BitOrExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 68;
if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)");
State = 69;
Match(T__18);
State = 70;
expression(10);
}
break;
case 11:
{
_localctx = new IfExpressionContext(new ExpressionContext(_parentctx, _parentState));
PushNewRecursionContext(_localctx, _startState, RULE_expression);
State = 71;
if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)");
State = 72;
Match(T__19);
State = 73;
expression(0);
State = 74;
Match(T__20);
State = 75;
expression(9);
}
break;
}
}
}
State = 81;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,4,Context);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
UnrollRecursionContexts(_parentctx);
}
return _localctx;
}
public partial class IdentifierSegmentContext : ParserRuleContext {
public IToken name;
public IdentifierSegmentArgumentsContext args;
public IdentifierSegmentIndexesContext index;
public IdentifierSegmentRestContext rest;
[System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Identifier() { return GetToken(ExpressionParser.Identifier, 0); }
[System.Diagnostics.DebuggerNonUserCode] public IdentifierSegmentArgumentsContext identifierSegmentArguments() {
return GetRuleContext<IdentifierSegmentArgumentsContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public IdentifierSegmentIndexesContext identifierSegmentIndexes() {
return GetRuleContext<IdentifierSegmentIndexesContext>(0);
}
[System.Diagnostics.DebuggerNonUserCode] public IdentifierSegmentRestContext identifierSegmentRest() {
return GetRuleContext<IdentifierSegmentRestContext>(0);
}
public IdentifierSegmentContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_identifierSegment; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIdentifierSegment(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIdentifierSegment(this);
}
}
[RuleVersion(0)]
public IdentifierSegmentContext identifierSegment() {
IdentifierSegmentContext _localctx = new IdentifierSegmentContext(Context, State);
EnterRule(_localctx, 4, RULE_identifierSegment);
try {
EnterOuterAlt(_localctx, 1);
{
State = 82;
_localctx.name = Match(Identifier);
State = 84;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,5,Context) ) {
case 1:
{
State = 83;
_localctx.args = identifierSegmentArguments();
}
break;
}
State = 87;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,6,Context) ) {
case 1:
{
State = 86;
_localctx.index = identifierSegmentIndexes();
}
break;
}
State = 91;
ErrorHandler.Sync(this);
switch ( Interpreter.AdaptivePredict(TokenStream,7,Context) ) {
case 1:
{
State = 89;
Match(T__23);
State = 90;
_localctx.rest = identifierSegmentRest();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class IdentifierSegmentArgumentsContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ArgumentsContext arguments() {
return GetRuleContext<ArgumentsContext>(0);
}
public IdentifierSegmentArgumentsContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_identifierSegmentArguments; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIdentifierSegmentArguments(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIdentifierSegmentArguments(this);
}
}
[RuleVersion(0)]
public IdentifierSegmentArgumentsContext identifierSegmentArguments() {
IdentifierSegmentArgumentsContext _localctx = new IdentifierSegmentArgumentsContext(Context, State);
EnterRule(_localctx, 6, RULE_identifierSegmentArguments);
try {
EnterOuterAlt(_localctx, 1);
{
State = 93;
arguments();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class IdentifierSegmentIndexesContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public IndexesContext indexes() {
return GetRuleContext<IndexesContext>(0);
}
public IdentifierSegmentIndexesContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_identifierSegmentIndexes; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIdentifierSegmentIndexes(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIdentifierSegmentIndexes(this);
}
}
[RuleVersion(0)]
public IdentifierSegmentIndexesContext identifierSegmentIndexes() {
IdentifierSegmentIndexesContext _localctx = new IdentifierSegmentIndexesContext(Context, State);
EnterRule(_localctx, 8, RULE_identifierSegmentIndexes);
try {
EnterOuterAlt(_localctx, 1);
{
State = 95;
indexes();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class IdentifierSegmentRestContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public IdentifierSegmentContext identifierSegment() {
return GetRuleContext<IdentifierSegmentContext>(0);
}
public IdentifierSegmentRestContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_identifierSegmentRest; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIdentifierSegmentRest(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIdentifierSegmentRest(this);
}
}
[RuleVersion(0)]
public IdentifierSegmentRestContext identifierSegmentRest() {
IdentifierSegmentRestContext _localctx = new IdentifierSegmentRestContext(Context, State);
EnterRule(_localctx, 10, RULE_identifierSegmentRest);
try {
EnterOuterAlt(_localctx, 1);
{
State = 97;
identifierSegment();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class ArgumentsContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public ArgumentsContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_arguments; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterArguments(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitArguments(this);
}
}
[RuleVersion(0)]
public ArgumentsContext arguments() {
ArgumentsContext _localctx = new ArgumentsContext(Context, State);
EnterRule(_localctx, 12, RULE_arguments);
int _la;
try {
EnterOuterAlt(_localctx, 1);
{
State = 99;
Match(T__21);
State = 108;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 25505562630L) != 0)) {
{
State = 100;
expression(0);
State = 105;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
while (_la==T__24) {
{
{
State = 101;
Match(T__24);
State = 102;
expression(0);
}
}
State = 107;
ErrorHandler.Sync(this);
_la = TokenStream.LA(1);
}
}
}
State = 110;
Match(T__22);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
ErrorHandler.ReportError(this, re);
ErrorHandler.Recover(this, re);
}
finally {
ExitRule();
}
return _localctx;
}
public partial class IndexesContext : ParserRuleContext {
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext[] expression() {
return GetRuleContexts<ExpressionContext>();
}
[System.Diagnostics.DebuggerNonUserCode] public ExpressionContext expression(int i) {
return GetRuleContext<ExpressionContext>(i);
}
public IndexesContext(ParserRuleContext parent, int invokingState)
: base(parent, invokingState)
{
}
public override int RuleIndex { get { return RULE_indexes; } }
[System.Diagnostics.DebuggerNonUserCode]
public override void EnterRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.EnterIndexes(this);
}
[System.Diagnostics.DebuggerNonUserCode]
public override void ExitRule(IParseTreeListener listener) {
IExpressionListener typedListener = listener as IExpressionListener;
if (typedListener != null) typedListener.ExitIndexes(this);
}
}
[RuleVersion(0)]
public IndexesContext indexes() {
IndexesContext _localctx = new IndexesContext(Context, State);
EnterRule(_localctx, 14, RULE_indexes);
try {
int _alt;
EnterOuterAlt(_localctx, 1);
{
State = 116;
ErrorHandler.Sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
State = 112;
Match(T__25);
State = 113;
expression(0);
State = 114;
Match(T__26);
}
}
break;
default:
throw new NoViableAltException(this);
}
State = 118;
ErrorHandler.Sync(this);
_alt = Interpreter.AdaptivePredict(TokenStream,10,Context);
} while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER );
}
}
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 1: return expression_sempred((ExpressionContext)_localctx, predIndex);
}
return true;
}
private bool expression_sempred(ExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 0: return Precpred(Context, 18);
case 1: return Precpred(Context, 17);
case 2: return Precpred(Context, 16);
case 3: return Precpred(Context, 15);
case 4: return Precpred(Context, 14);
case 5: return Precpred(Context, 13);
case 6: return Precpred(Context, 12);
case 7: return Precpred(Context, 11);
case 8: return Precpred(Context, 10);
case 9: return Precpred(Context, 9);
case 10: return Precpred(Context, 8);
}
return true;
}
private static int[] _serializedATN = {
4,1,34,121,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,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,32,
8,1,1,1,1,1,1,1,1,1,3,1,38,8,1,3,1,40,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,78,8,1,10,1,12,1,81,
9,1,1,2,1,2,3,2,85,8,2,1,2,3,2,88,8,2,1,2,1,2,3,2,92,8,2,1,3,1,3,1,4,1,
4,1,5,1,5,1,6,1,6,1,6,1,6,5,6,104,8,6,10,6,12,6,107,9,6,3,6,109,8,6,1,
6,1,6,1,7,1,7,1,7,1,7,4,7,117,8,7,11,7,12,7,118,1,7,0,1,2,8,0,2,4,6,8,
10,12,14,0,5,1,0,4,6,2,0,1,1,7,7,1,0,8,9,1,0,10,13,1,0,14,15,139,0,16,
1,0,0,0,2,39,1,0,0,0,4,82,1,0,0,0,6,93,1,0,0,0,8,95,1,0,0,0,10,97,1,0,
0,0,12,99,1,0,0,0,14,116,1,0,0,0,16,17,3,2,1,0,17,18,5,0,0,1,18,1,1,0,
0,0,19,20,6,1,-1,0,20,21,5,1,0,0,21,40,3,2,1,20,22,23,5,2,0,0,23,40,3,
2,1,19,24,40,5,30,0,0,25,40,5,34,0,0,26,40,5,29,0,0,27,40,5,28,0,0,28,
40,3,4,2,0,29,31,5,32,0,0,30,32,3,14,7,0,31,30,1,0,0,0,31,32,1,0,0,0,32,
40,1,0,0,0,33,34,5,22,0,0,34,35,3,2,1,0,35,37,5,23,0,0,36,38,3,14,7,0,
37,36,1,0,0,0,37,38,1,0,0,0,38,40,1,0,0,0,39,19,1,0,0,0,39,22,1,0,0,0,
39,24,1,0,0,0,39,25,1,0,0,0,39,26,1,0,0,0,39,27,1,0,0,0,39,28,1,0,0,0,
39,29,1,0,0,0,39,33,1,0,0,0,40,79,1,0,0,0,41,42,10,18,0,0,42,43,5,3,0,
0,43,78,3,2,1,18,44,45,10,17,0,0,45,46,7,0,0,0,46,78,3,2,1,18,47,48,10,
16,0,0,48,49,7,1,0,0,49,78,3,2,1,17,50,51,10,15,0,0,51,52,7,2,0,0,52,78,
3,2,1,16,53,54,10,14,0,0,54,55,7,3,0,0,55,78,3,2,1,15,56,57,10,13,0,0,
57,58,7,4,0,0,58,78,3,2,1,14,59,60,10,12,0,0,60,61,5,16,0,0,61,78,3,2,
1,13,62,63,10,11,0,0,63,64,5,17,0,0,64,78,3,2,1,12,65,66,10,10,0,0,66,
67,5,18,0,0,67,78,3,2,1,11,68,69,10,9,0,0,69,70,5,19,0,0,70,78,3,2,1,10,
71,72,10,8,0,0,72,73,5,20,0,0,73,74,3,2,1,0,74,75,5,21,0,0,75,76,3,2,1,
9,76,78,1,0,0,0,77,41,1,0,0,0,77,44,1,0,0,0,77,47,1,0,0,0,77,50,1,0,0,
0,77,53,1,0,0,0,77,56,1,0,0,0,77,59,1,0,0,0,77,62,1,0,0,0,77,65,1,0,0,
0,77,68,1,0,0,0,77,71,1,0,0,0,78,81,1,0,0,0,79,77,1,0,0,0,79,80,1,0,0,
0,80,3,1,0,0,0,81,79,1,0,0,0,82,84,5,31,0,0,83,85,3,6,3,0,84,83,1,0,0,
0,84,85,1,0,0,0,85,87,1,0,0,0,86,88,3,8,4,0,87,86,1,0,0,0,87,88,1,0,0,
0,88,91,1,0,0,0,89,90,5,24,0,0,90,92,3,10,5,0,91,89,1,0,0,0,91,92,1,0,
0,0,92,5,1,0,0,0,93,94,3,12,6,0,94,7,1,0,0,0,95,96,3,14,7,0,96,9,1,0,0,
0,97,98,3,4,2,0,98,11,1,0,0,0,99,108,5,22,0,0,100,105,3,2,1,0,101,102,
5,25,0,0,102,104,3,2,1,0,103,101,1,0,0,0,104,107,1,0,0,0,105,103,1,0,0,
0,105,106,1,0,0,0,106,109,1,0,0,0,107,105,1,0,0,0,108,100,1,0,0,0,108,
109,1,0,0,0,109,110,1,0,0,0,110,111,5,23,0,0,111,13,1,0,0,0,112,113,5,
26,0,0,113,114,3,2,1,0,114,115,5,27,0,0,115,117,1,0,0,0,116,112,1,0,0,
0,117,118,1,0,0,0,118,116,1,0,0,0,118,119,1,0,0,0,119,15,1,0,0,0,11,31,
37,39,77,79,84,87,91,105,108,118
};
public static readonly ATN _ATN =
new ATNDeserializer().Deserialize(_serializedATN);
}
} // namespace org.apache.plc4net.tools.codegen.grammar