AadlBaParser.java
// Generated from AadlBa.g by ANTLR 4.4
/**
* AADL-BA-FrontEnd
*
* Copyright © 2013 TELECOM ParisTech and CNRS
*
* TELECOM ParisTech/LTCI
*
* Authors: see AUTHORS
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the Eclipse Public License as published by Eclipse,
* either version 2.0 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Eclipse Public License for more details.
* You should have received a copy of the Eclipse Public License
* along with this program. If not, see
* https://www.eclipse.org/legal/epl-2.0/
*/
package org.osate.ba.parser;
import java.util.ArrayList;
import java.util.List;
import org.antlr.v4.runtime.NoViableAltException;
import org.antlr.v4.runtime.Parser;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.ParserATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.eclipse.emf.common.util.EList;
import org.osate.aadl2.ProcessorClassifier;
import org.osate.aadl2.parsesupport.ParseUtil;
import org.osate.ba.aadlba.AssignmentAction;
import org.osate.ba.aadlba.BasicAction;
import org.osate.ba.aadlba.BehaviorAction;
import org.osate.ba.aadlba.BehaviorActionBlock;
import org.osate.ba.aadlba.BehaviorActions;
import org.osate.ba.aadlba.BehaviorAnnex;
import org.osate.ba.aadlba.BehaviorBooleanLiteral;
import org.osate.ba.aadlba.BehaviorCondition;
import org.osate.ba.aadlba.BehaviorIntegerLiteral;
import org.osate.ba.aadlba.BehaviorRealLiteral;
import org.osate.ba.aadlba.BehaviorStringLiteral;
import org.osate.ba.aadlba.BehaviorVariable;
import org.osate.ba.aadlba.BinaryAddingOperator;
import org.osate.ba.aadlba.BinaryNumericOperator;
import org.osate.ba.aadlba.DispatchCondition;
import org.osate.ba.aadlba.DispatchConjunction;
import org.osate.ba.aadlba.DispatchTriggerCondition;
import org.osate.ba.aadlba.DispatchTriggerLogicalExpression;
import org.osate.ba.aadlba.ElementValues;
import org.osate.ba.aadlba.ExecuteCondition;
import org.osate.ba.aadlba.Factor;
import org.osate.ba.aadlba.ForOrForAllStatement;
import org.osate.ba.aadlba.IfStatement;
import org.osate.ba.aadlba.IntegerRange;
import org.osate.ba.aadlba.IntegerValue;
import org.osate.ba.aadlba.IntegerValueConstant;
import org.osate.ba.aadlba.LogicalOperator;
import org.osate.ba.aadlba.ModeSwitchConjunction;
import org.osate.ba.aadlba.ModeSwitchTriggerLogicalExpression;
import org.osate.ba.aadlba.MultiplyingOperator;
import org.osate.ba.aadlba.NumericLiteral;
import org.osate.ba.aadlba.ParameterLabel;
import org.osate.ba.aadlba.Relation;
import org.osate.ba.aadlba.RelationalOperator;
import org.osate.ba.aadlba.SimpleExpression;
import org.osate.ba.aadlba.Target;
import org.osate.ba.aadlba.Term;
import org.osate.ba.aadlba.TimedAction;
import org.osate.ba.aadlba.UnaryAddingOperator;
import org.osate.ba.aadlba.UnaryBooleanOperator;
import org.osate.ba.aadlba.UnaryNumericOperator;
import org.osate.ba.aadlba.Value;
import org.osate.ba.aadlba.ValueConstant;
import org.osate.ba.aadlba.ValueExpression;
import org.osate.ba.aadlba.ValueVariable;
import org.osate.ba.aadlba.WhileOrDoUntilStatement;
import org.osate.ba.declarative.ArrayableIdentifier;
import org.osate.ba.declarative.CommAction;
import org.osate.ba.declarative.DeclarativeBasicPropertyAssociation;
import org.osate.ba.declarative.DeclarativeBehaviorTransition;
import org.osate.ba.declarative.DeclarativeClassifierValue;
import org.osate.ba.declarative.DeclarativeListValue;
import org.osate.ba.declarative.DeclarativePropertyAssociation;
import org.osate.ba.declarative.DeclarativePropertyExpression;
import org.osate.ba.declarative.DeclarativePropertyName;
import org.osate.ba.declarative.DeclarativePropertyReference;
import org.osate.ba.declarative.DeclarativeRangeValue;
import org.osate.ba.declarative.DeclarativeRecordValue;
import org.osate.ba.declarative.DeclarativeReferenceValue;
import org.osate.ba.declarative.DeclarativeTime;
import org.osate.ba.declarative.QualifiedNamedElement;
import org.osate.ba.declarative.Reference;
@SuppressWarnings({ "all", "warnings", "unchecked", "unused", "cast" })
public class AadlBaParser extends Parser {
static {
RuntimeMetaData.checkVersion("4.4", RuntimeMetaData.VERSION);
}
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
public static final int ABS = 1, AND = 2, ANY = 3, BINDING = 4, CLASSIFIER = 5, COMPLETE = 6, COMPUTATION = 7,
COUNT = 8, DISPATCH = 9, DO = 10, ELSE = 11, ELSIF = 12, END = 13, FALSE = 14, FINAL = 15, FOR = 16,
FORALL = 17, FRESH = 18, FROZEN = 19, IF = 20, IN = 21, INITIAL = 22, LOWER_BOUND = 23, MOD = 24, NOT = 25,
ON = 26, OR = 27, OTHERWISE = 28, REFERENCE = 29, VARIABLES = 30, REM = 31, STATE = 32, STATES = 33,
STOP = 34, TIMEOUT = 35, TRANSITIONS = 36, TRUE = 37, UNTIL = 38, UPPER_BOUND = 39, WHILE = 40, XOR = 41,
LBRACK = 42, RBRACK = 43, COMMA = 44, LTRANS = 45, RTRANS = 46, LPAREN = 47, RPAREN = 48, CONCAT = 49,
LCURLY = 50, RCURLY = 51, COLON = 52, ASSIGN = 53, PROPERTYASSIGN = 54, EXCLAM = 55, INTERROG = 56,
GGREATER = 57, EXCLLESS = 58, EXCLGREATER = 59, DOT = 60, TICK = 61, EQUAL = 62, NOTEQUAL = 63,
LESSTHAN = 64, LESSOREQUAL = 65, GREATERTHAN = 66, GREATEROREQUAL = 67, PLUS = 68, MINUS = 69, STAR = 70,
DIVIDE = 71, STARSTAR = 72, DOTDOT = 73, SEMICOLON = 74, DOUBLECOLON = 75, HASH = 76, ERR_EQUALEQUAL = 77,
ERR_END = 78, ERR_ELSIF = 79, IDENT = 80, STRING_LITERAL = 81, REAL_LIT = 82, INTEGER_LIT = 83, WS = 84,
SL_COMMENT = 85;
public static final String[] tokenNames = { "<INVALID>", "'abs'", "'and'", "'any'", "'binding'", "'classifier'",
"'complete'", "'computation'", "'count'", "'dispatch'", "'do'", "'else'", "'elsif'", "'end'", "'false'",
"'final'", "'for'", "'forall'", "'fresh'", "'frozen'", "'if'", "'in'", "'initial'", "'lower_bound'",
"'mod'", "'not'", "'on'", "'or'", "'otherwise'", "'reference'", "'variables'", "'rem'", "'state'",
"'states'", "'stop'", "'timeout'", "'transitions'", "'true'", "'until'", "'upper_bound'", "'while'",
"'xor'", "'['", "']'", "','", "'-['", "']->'", "'('", "')'", "'&'", "'{'", "'}'", "':'", "':='", "'=>'",
"'!'", "'?'", "'>>'", "'!<'", "'!>'", "'.'", "'''", "'='", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'",
"'-'", "'*'", "'/'", "'**'", "'..'", "';'", "'::'", "'#'", "'=='", "'endif'", "'elif'", "IDENT",
"STRING_LITERAL", "REAL_LIT", "INTEGER_LIT", "WS", "SL_COMMENT" };
public static final int RULE_behavior_annex = 0, RULE_behavior_variable_list = 1, RULE_behavior_variable = 2,
RULE_data_classifier_property_association = 3, RULE_property_ref = 4, RULE_qualifiable_property = 5,
RULE_property_value = 6, RULE_list_property_value = 7, RULE_reference_property_value = 8,
RULE_boolean_property_value = 9, RULE_numeric_range_property_value = 10, RULE_record_property_value = 11,
RULE_field_property_association = 12, RULE_classifier_property_value = 13, RULE_unit_reference = 14,
RULE_integer_property_value = 15, RULE_signed_int = 16, RULE_real_property_value = 17,
RULE_string_property_value = 18, RULE_signed_real = 19, RULE_numeric_property_value = 20,
RULE_qualifiable_named_element = 21, RULE_unique_component_classifier_reference = 22,
RULE_behavior_state_list = 23, RULE_behavior_transition = 24, RULE_behavior_action_block = 25,
RULE_action_block = 26, RULE_behavior_condition = 27, RULE_execute_condition = 28,
RULE_integer_value_constant = 29, RULE_dispatch_condition = 30, RULE_dispatch_trigger_condition = 31,
RULE_mode_switch_trigger_logical_expression = 32, RULE_dispatch_trigger_logical_expression = 33,
RULE_dispatch_conjunction = 34, RULE_mode_switch_trigger_conjunction = 35, RULE_behavior_actions = 36,
RULE_behavior_action = 37, RULE_if_statement = 38, RULE_elsif_statement = 39, RULE_for_statement = 40,
RULE_for_condition = 41, RULE_forall_statement = 42, RULE_forall_condition = 43, RULE_while_statement = 44,
RULE_while_condition = 45, RULE_dountil_statement = 46, RULE_element_values = 47, RULE_basic_action = 48,
RULE_assignment_action = 49, RULE_target = 50, RULE_qualified_named_element = 51,
RULE_communication_action = 52, RULE_timed_action = 53, RULE_in_binding = 54,
RULE_processor_parameter_list = 55, RULE_subprogram_parameter_list = 56, RULE_parameter_label = 57,
RULE_reference = 58, RULE_array_identifier = 59, RULE_value_constant = 60,
RULE_value_constant_or_variable = 61, RULE_value_variable = 62, RULE_value_expression = 63,
RULE_relation = 64, RULE_simple_expression = 65, RULE_term = 66, RULE_factor = 67,
RULE_logical_operator = 68, RULE_relational_operator = 69, RULE_binary_adding_operator = 70,
RULE_unary_adding_operator = 71, RULE_multiplying_operator = 72, RULE_binary_numeric_operator = 73,
RULE_unary_numeric_operator = 74, RULE_unary_boolean_operator = 75, RULE_boolean_literal = 76,
RULE_integer_range = 77, RULE_integer_value = 78, RULE_behavior_time = 79, RULE_property_reference = 80,
RULE_property_name = 81, RULE_numeric_literal = 82, RULE_real_literal = 83, RULE_integer_literal = 84,
RULE_string_literal = 85, RULE_numeral = 86;
public static final String[] ruleNames = { "behavior_annex", "behavior_variable_list", "behavior_variable",
"data_classifier_property_association", "property_ref", "qualifiable_property", "property_value",
"list_property_value", "reference_property_value", "boolean_property_value", "numeric_range_property_value",
"record_property_value", "field_property_association", "classifier_property_value", "unit_reference",
"integer_property_value", "signed_int", "real_property_value", "string_property_value", "signed_real",
"numeric_property_value", "qualifiable_named_element", "unique_component_classifier_reference",
"behavior_state_list", "behavior_transition", "behavior_action_block", "action_block", "behavior_condition",
"execute_condition", "integer_value_constant", "dispatch_condition", "dispatch_trigger_condition",
"mode_switch_trigger_logical_expression", "dispatch_trigger_logical_expression", "dispatch_conjunction",
"mode_switch_trigger_conjunction", "behavior_actions", "behavior_action", "if_statement", "elsif_statement",
"for_statement", "for_condition", "forall_statement", "forall_condition", "while_statement",
"while_condition", "dountil_statement", "element_values", "basic_action", "assignment_action", "target",
"qualified_named_element", "communication_action", "timed_action", "in_binding", "processor_parameter_list",
"subprogram_parameter_list", "parameter_label", "reference", "array_identifier", "value_constant",
"value_constant_or_variable", "value_variable", "value_expression", "relation", "simple_expression", "term",
"factor", "logical_operator", "relational_operator", "binary_adding_operator", "unary_adding_operator",
"multiplying_operator", "binary_numeric_operator", "unary_numeric_operator", "unary_boolean_operator",
"boolean_literal", "integer_range", "integer_value", "behavior_time", "property_reference", "property_name",
"numeric_literal", "real_literal", "integer_literal", "string_literal", "numeral" };
@Override
public String getGrammarFileName() {
return "AadlBa.g";
}
@Override
public String[] getTokenNames() {
return tokenNames;
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public ATN getATN() {
return _ATN;
}
protected BehaviorAnnex _ba = null;
protected void notifyDuplicateSymbol(List<TerminalNode> left, List<TerminalNode> right, String symbolName) {
Token token;
if (left.size() > 1) {
token = left.get(left.size() - 1).getSymbol();
} else {
token = right.get(right.size() - 1).getSymbol();
}
notifyErrorListeners(token, "unbalanced " + symbolName, null);
}
protected void integerLiteralChecker(TerminalNode integerLiteral) {
try {
String str = integerLiteral.getText();
ParseUtil.parseAadlInteger(str);
} catch (IllegalArgumentException ex) {
notifyErrorListeners(integerLiteral.getSymbol(),
"mal-formatted integer literal input \'" + integerLiteral.getText() + '\'', null);
}
}
protected void realLiteralChecker(TerminalNode realLiteral) {
try {
String str = realLiteral.getText();
str = str.replaceAll("_", "");
ParseUtil.parseAadlReal(str);
} catch (IllegalArgumentException ex) {
notifyErrorListeners(realLiteral.getSymbol(),
"mal-formatted real literal input \'" + realLiteral.getText() + '\'', null);
}
}
public AadlBaParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
public static class Behavior_annexContext extends ParserRuleContext {
public BehaviorAnnex result;
public TerminalNode VARIABLES() {
return getToken(AadlBaParser.VARIABLES, 0);
}
public Behavior_transitionContext behavior_transition(int i) {
return getRuleContext(Behavior_transitionContext.class, i);
}
public Behavior_variable_listContext behavior_variable_list(int i) {
return getRuleContext(Behavior_variable_listContext.class, i);
}
public List<Behavior_transitionContext> behavior_transition() {
return getRuleContexts(Behavior_transitionContext.class);
}
public TerminalNode STATES() {
return getToken(AadlBaParser.STATES, 0);
}
public Behavior_state_listContext behavior_state_list(int i) {
return getRuleContext(Behavior_state_listContext.class, i);
}
public List<Behavior_variable_listContext> behavior_variable_list() {
return getRuleContexts(Behavior_variable_listContext.class);
}
public List<Behavior_state_listContext> behavior_state_list() {
return getRuleContexts(Behavior_state_listContext.class);
}
public TerminalNode TRANSITIONS() {
return getToken(AadlBaParser.TRANSITIONS, 0);
}
public Behavior_annexContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_annex;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_annex(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_annex(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_annex(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_annexContext behavior_annex() throws RecognitionException {
Behavior_annexContext _localctx = new Behavior_annexContext(_ctx, getState());
enterRule(_localctx, 0, RULE_behavior_annex);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(180);
_la = _input.LA(1);
if (_la == VARIABLES) {
{
setState(174);
match(VARIABLES);
setState(176);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(175);
behavior_variable_list(_localctx.result);
}
}
setState(178);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == IDENT);
}
}
setState(188);
_la = _input.LA(1);
if (_la == STATES) {
{
setState(182);
match(STATES);
setState(184);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(183);
behavior_state_list(_localctx.result);
}
}
setState(186);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == IDENT);
}
}
setState(196);
_la = _input.LA(1);
if (_la == TRANSITIONS) {
{
setState(190);
match(TRANSITIONS);
setState(192);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(191);
behavior_transition();
}
}
setState(194);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == IDENT);
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_variable_listContext extends ParserRuleContext {
public BehaviorAnnex ba;
public int variableCount;
public Token separator;
public Data_classifier_property_associationContext data_classifier_property_association;
public List<Data_classifier_property_associationContext> property_associations = new ArrayList<Data_classifier_property_associationContext>();
public Token SEMICOLON;
public TerminalNode SEMICOLON() {
return getToken(AadlBaParser.SEMICOLON, 0);
}
public TerminalNode COLON() {
return getToken(AadlBaParser.COLON, 0);
}
public Value_constantContext value_constant() {
return getRuleContext(Value_constantContext.class, 0);
}
public TerminalNode LCURLY() {
return getToken(AadlBaParser.LCURLY, 0);
}
public Behavior_variableContext behavior_variable(int i) {
return getRuleContext(Behavior_variableContext.class, i);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public TerminalNode ASSIGN() {
return getToken(AadlBaParser.ASSIGN, 0);
}
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public TerminalNode RCURLY() {
return getToken(AadlBaParser.RCURLY, 0);
}
public Data_classifier_property_associationContext data_classifier_property_association(int i) {
return getRuleContext(Data_classifier_property_associationContext.class, i);
}
public List<Behavior_variableContext> behavior_variable() {
return getRuleContexts(Behavior_variableContext.class);
}
public List<Data_classifier_property_associationContext> data_classifier_property_association() {
return getRuleContexts(Data_classifier_property_associationContext.class);
}
public Unique_component_classifier_referenceContext unique_component_classifier_reference() {
return getRuleContext(Unique_component_classifier_referenceContext.class, 0);
}
public Behavior_variable_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
public Behavior_variable_listContext(ParserRuleContext parent, int invokingState, BehaviorAnnex ba) {
super(parent, invokingState);
this.ba = ba;
}
@Override
public int getRuleIndex() {
return RULE_behavior_variable_list;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_variable_list(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_variable_list(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_variable_list(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_variable_listContext behavior_variable_list(BehaviorAnnex ba) throws RecognitionException {
Behavior_variable_listContext _localctx = new Behavior_variable_listContext(_ctx, getState(), ba);
enterRule(_localctx, 2, RULE_behavior_variable_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(198);
behavior_variable();
((Behavior_variable_listContext) _localctx).variableCount = 0;
setState(208);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == COMMA || _la == IDENT) {
{
{
setState(201);
_la = _input.LA(1);
if (_la == COMMA) {
{
setState(200);
((Behavior_variable_listContext) _localctx).separator = match(COMMA);
}
}
setState(203);
behavior_variable();
_localctx.variableCount++;
if (((Behavior_variable_listContext) _localctx).separator == null) {
try {
notifyErrorListeners(
_localctx.behavior_variable(_localctx.variableCount - 1).getStop(),
"missing behavior variable separator \',\'", null);
} catch (Exception e) {
notifyErrorListeners("missing behavior variable separator \',\'");
}
} else {
_localctx.separator = null;
}
}
}
setState(210);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(211);
match(COLON);
setState(212);
unique_component_classifier_reference();
setState(215);
_la = _input.LA(1);
if (_la == ASSIGN) {
{
setState(213);
match(ASSIGN);
setState(214);
value_constant();
}
}
setState(225);
_la = _input.LA(1);
if (_la == LCURLY) {
{
setState(217);
match(LCURLY);
setState(219);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(218);
((Behavior_variable_listContext) _localctx).data_classifier_property_association = data_classifier_property_association();
((Behavior_variable_listContext) _localctx).property_associations.add(
((Behavior_variable_listContext) _localctx).data_classifier_property_association);
}
}
setState(221);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == IDENT);
setState(223);
match(RCURLY);
}
}
setState(228);
_la = _input.LA(1);
if (_la == SEMICOLON) {
{
setState(227);
((Behavior_variable_listContext) _localctx).SEMICOLON = match(SEMICOLON);
}
}
if (((Behavior_variable_listContext) _localctx).SEMICOLON() == null) {
try {
notifyErrorListeners(_localctx.unique_component_classifier_reference().getStop(),
"unterminated behavior variable (missing ending \';\')", null);
} catch (Exception e) {
notifyErrorListeners("unterminated behavior variable (missing ending \';\')");
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_variableContext extends ParserRuleContext {
public BehaviorVariable result;
public Integer_value_constantContext integer_value_constant(int i) {
return getRuleContext(Integer_value_constantContext.class, i);
}
public TerminalNode RBRACK(int i) {
return getToken(AadlBaParser.RBRACK, i);
}
public TerminalNode LBRACK(int i) {
return getToken(AadlBaParser.LBRACK, i);
}
public List<TerminalNode> RBRACK() {
return getTokens(AadlBaParser.RBRACK);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public List<TerminalNode> LBRACK() {
return getTokens(AadlBaParser.LBRACK);
}
public List<Integer_value_constantContext> integer_value_constant() {
return getRuleContexts(Integer_value_constantContext.class);
}
public Behavior_variableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_variable;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_variable(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_variable(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_variable(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_variableContext behavior_variable() throws RecognitionException {
Behavior_variableContext _localctx = new Behavior_variableContext(_ctx, getState());
enterRule(_localctx, 4, RULE_behavior_variable);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(232);
match(IDENT);
setState(239);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == LBRACK) {
{
{
setState(233);
match(LBRACK);
setState(234);
integer_value_constant();
setState(235);
match(RBRACK);
}
}
setState(241);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Data_classifier_property_associationContext extends ParserRuleContext {
public DeclarativePropertyAssociation result;
public Property_refContext property;
public Property_valueContext ownedValue;
public TerminalNode SEMICOLON() {
return getToken(AadlBaParser.SEMICOLON, 0);
}
public Property_refContext property_ref() {
return getRuleContext(Property_refContext.class, 0);
}
public Property_valueContext property_value() {
return getRuleContext(Property_valueContext.class, 0);
}
public TerminalNode PROPERTYASSIGN() {
return getToken(AadlBaParser.PROPERTYASSIGN, 0);
}
public Data_classifier_property_associationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_data_classifier_property_association;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterData_classifier_property_association(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitData_classifier_property_association(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitData_classifier_property_association(this);
else
return visitor.visitChildren(this);
}
}
public final Data_classifier_property_associationContext data_classifier_property_association()
throws RecognitionException {
Data_classifier_property_associationContext _localctx = new Data_classifier_property_associationContext(_ctx,
getState());
enterRule(_localctx, 6, RULE_data_classifier_property_association);
try {
enterOuterAlt(_localctx, 1);
{
setState(242);
((Data_classifier_property_associationContext) _localctx).property = property_ref();
setState(243);
match(PROPERTYASSIGN);
setState(244);
((Data_classifier_property_associationContext) _localctx).ownedValue = property_value();
setState(245);
match(SEMICOLON);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Property_refContext extends ParserRuleContext {
public QualifiedNamedElement result;
public Qualifiable_propertyContext qualifiable_property() {
return getRuleContext(Qualifiable_propertyContext.class, 0);
}
public Property_refContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_property_ref;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterProperty_ref(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitProperty_ref(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitProperty_ref(this);
else
return visitor.visitChildren(this);
}
}
public final Property_refContext property_ref() throws RecognitionException {
Property_refContext _localctx = new Property_refContext(_ctx, getState());
enterRule(_localctx, 8, RULE_property_ref);
try {
enterOuterAlt(_localctx, 1);
{
{
setState(247);
qualifiable_property(_localctx.result);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Qualifiable_propertyContext extends ParserRuleContext {
public QualifiedNamedElement result;
public String id1;
public String id2;
public Token identifier1;
public Token identifier2;
public TerminalNode DOUBLECOLON(int i) {
return getToken(AadlBaParser.DOUBLECOLON, i);
}
public TerminalNode IDENT(int i) {
return getToken(AadlBaParser.IDENT, i);
}
public List<TerminalNode> DOUBLECOLON() {
return getTokens(AadlBaParser.DOUBLECOLON);
}
public List<TerminalNode> IDENT() {
return getTokens(AadlBaParser.IDENT);
}
public Qualifiable_propertyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
public Qualifiable_propertyContext(ParserRuleContext parent, int invokingState, QualifiedNamedElement result) {
super(parent, invokingState);
this.result = result;
}
@Override
public int getRuleIndex() {
return RULE_qualifiable_property;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterQualifiable_property(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitQualifiable_property(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitQualifiable_property(this);
else
return visitor.visitChildren(this);
}
}
public final Qualifiable_propertyContext qualifiable_property(QualifiedNamedElement result)
throws RecognitionException {
Qualifiable_propertyContext _localctx = new Qualifiable_propertyContext(_ctx, getState(), result);
enterRule(_localctx, 10, RULE_qualifiable_property);
((Qualifiable_propertyContext) _localctx).id1 = "";
((Qualifiable_propertyContext) _localctx).id2 = "";
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(254);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 13, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(249);
((Qualifiable_propertyContext) _localctx).identifier1 = match(IDENT);
setState(250);
match(DOUBLECOLON);
((Qualifiable_propertyContext) _localctx).id1 = _localctx.id1
+ (_localctx.id1.length() == 0 ? "" : "::")
+ (((Qualifiable_propertyContext) _localctx).identifier1 != null
? ((Qualifiable_propertyContext) _localctx).identifier1.getText()
: null);
}
}
}
setState(256);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 13, _ctx);
}
setState(257);
((Qualifiable_propertyContext) _localctx).identifier2 = match(IDENT);
((Qualifiable_propertyContext) _localctx).id2 = (((Qualifiable_propertyContext) _localctx).identifier2 != null
? ((Qualifiable_propertyContext) _localctx).identifier2.getText()
: null);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Property_valueContext extends ParserRuleContext {
public DeclarativePropertyExpression result;
public String_property_valueContext string_property_value() {
return getRuleContext(String_property_valueContext.class, 0);
}
public Classifier_property_valueContext classifier_property_value() {
return getRuleContext(Classifier_property_valueContext.class, 0);
}
public Record_property_valueContext record_property_value() {
return getRuleContext(Record_property_valueContext.class, 0);
}
public Real_property_valueContext real_property_value() {
return getRuleContext(Real_property_valueContext.class, 0);
}
public Reference_property_valueContext reference_property_value() {
return getRuleContext(Reference_property_valueContext.class, 0);
}
public Boolean_property_valueContext boolean_property_value() {
return getRuleContext(Boolean_property_valueContext.class, 0);
}
public Integer_property_valueContext integer_property_value() {
return getRuleContext(Integer_property_valueContext.class, 0);
}
public List_property_valueContext list_property_value() {
return getRuleContext(List_property_valueContext.class, 0);
}
public Numeric_range_property_valueContext numeric_range_property_value() {
return getRuleContext(Numeric_range_property_valueContext.class, 0);
}
public Property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterProperty_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitProperty_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitProperty_value(this);
else
return visitor.visitChildren(this);
}
}
public final Property_valueContext property_value() throws RecognitionException {
Property_valueContext _localctx = new Property_valueContext(_ctx, getState());
enterRule(_localctx, 12, RULE_property_value);
try {
setState(269);
switch (getInterpreter().adaptivePredict(_input, 14, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(260);
record_property_value();
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(261);
reference_property_value();
}
break;
case 3:
enterOuterAlt(_localctx, 3); {
setState(262);
classifier_property_value();
}
break;
case 4:
enterOuterAlt(_localctx, 4); {
setState(263);
string_property_value();
}
break;
case 5:
enterOuterAlt(_localctx, 5); {
setState(264);
numeric_range_property_value();
}
break;
case 6:
enterOuterAlt(_localctx, 6); {
setState(265);
integer_property_value();
}
break;
case 7:
enterOuterAlt(_localctx, 7); {
setState(266);
real_property_value();
}
break;
case 8:
enterOuterAlt(_localctx, 8); {
setState(267);
list_property_value();
}
break;
case 9:
enterOuterAlt(_localctx, 9); {
setState(268);
boolean_property_value();
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class List_property_valueContext extends ParserRuleContext {
public DeclarativeListValue result;
public Property_valueContext property_value;
public List<Property_valueContext> ownedListElement = new ArrayList<Property_valueContext>();
public Property_valueContext property_value(int i) {
return getRuleContext(Property_valueContext.class, i);
}
public List<Property_valueContext> property_value() {
return getRuleContexts(Property_valueContext.class);
}
public TerminalNode LPAREN() {
return getToken(AadlBaParser.LPAREN, 0);
}
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public TerminalNode RPAREN() {
return getToken(AadlBaParser.RPAREN, 0);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public List_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_list_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterList_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitList_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitList_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final List_property_valueContext list_property_value() throws RecognitionException {
List_property_valueContext _localctx = new List_property_valueContext(_ctx, getState());
enterRule(_localctx, 14, RULE_list_property_value);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(271);
match(LPAREN);
setState(272);
((List_property_valueContext) _localctx).property_value = property_value();
((List_property_valueContext) _localctx).ownedListElement
.add(((List_property_valueContext) _localctx).property_value);
setState(277);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == COMMA) {
{
{
setState(273);
match(COMMA);
setState(274);
((List_property_valueContext) _localctx).property_value = property_value();
((List_property_valueContext) _localctx).ownedListElement
.add(((List_property_valueContext) _localctx).property_value);
}
}
setState(279);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(280);
match(RPAREN);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Reference_property_valueContext extends ParserRuleContext {
public DeclarativeReferenceValue result;
public TerminalNode REFERENCE() {
return getToken(AadlBaParser.REFERENCE, 0);
}
public TerminalNode LPAREN() {
return getToken(AadlBaParser.LPAREN, 0);
}
public ReferenceContext reference() {
return getRuleContext(ReferenceContext.class, 0);
}
public TerminalNode RPAREN() {
return getToken(AadlBaParser.RPAREN, 0);
}
public Reference_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_reference_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterReference_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitReference_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitReference_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Reference_property_valueContext reference_property_value() throws RecognitionException {
Reference_property_valueContext _localctx = new Reference_property_valueContext(_ctx, getState());
enterRule(_localctx, 16, RULE_reference_property_value);
try {
enterOuterAlt(_localctx, 1);
{
setState(282);
match(REFERENCE);
setState(283);
match(LPAREN);
setState(284);
reference();
setState(285);
match(RPAREN);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Boolean_property_valueContext extends ParserRuleContext {
public BehaviorBooleanLiteral result;
public Boolean_literalContext boolean_literal() {
return getRuleContext(Boolean_literalContext.class, 0);
}
public Boolean_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_boolean_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBoolean_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBoolean_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBoolean_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Boolean_property_valueContext boolean_property_value() throws RecognitionException {
Boolean_property_valueContext _localctx = new Boolean_property_valueContext(_ctx, getState());
enterRule(_localctx, 18, RULE_boolean_property_value);
try {
enterOuterAlt(_localctx, 1);
{
setState(287);
boolean_literal();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Numeric_range_property_valueContext extends ParserRuleContext {
public DeclarativeRangeValue result;
public Numeric_property_valueContext lower_bound;
public Numeric_property_valueContext upper_bound;
public Numeric_property_valueContext numeric_property_value(int i) {
return getRuleContext(Numeric_property_valueContext.class, i);
}
public TerminalNode DOTDOT() {
return getToken(AadlBaParser.DOTDOT, 0);
}
public List<Numeric_property_valueContext> numeric_property_value() {
return getRuleContexts(Numeric_property_valueContext.class);
}
public Numeric_range_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_numeric_range_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterNumeric_range_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitNumeric_range_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitNumeric_range_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Numeric_range_property_valueContext numeric_range_property_value() throws RecognitionException {
Numeric_range_property_valueContext _localctx = new Numeric_range_property_valueContext(_ctx, getState());
enterRule(_localctx, 20, RULE_numeric_range_property_value);
try {
enterOuterAlt(_localctx, 1);
{
setState(289);
((Numeric_range_property_valueContext) _localctx).lower_bound = numeric_property_value();
setState(290);
match(DOTDOT);
setState(291);
((Numeric_range_property_valueContext) _localctx).upper_bound = numeric_property_value();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Record_property_valueContext extends ParserRuleContext {
public DeclarativeRecordValue result;
public Field_property_associationContext field_property_association;
public List<Field_property_associationContext> field_assign = new ArrayList<Field_property_associationContext>();
public Field_property_associationContext field_property_association(int i) {
return getRuleContext(Field_property_associationContext.class, i);
}
public TerminalNode RBRACK() {
return getToken(AadlBaParser.RBRACK, 0);
}
public TerminalNode LBRACK() {
return getToken(AadlBaParser.LBRACK, 0);
}
public List<Field_property_associationContext> field_property_association() {
return getRuleContexts(Field_property_associationContext.class);
}
public Record_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_record_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterRecord_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitRecord_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitRecord_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Record_property_valueContext record_property_value() throws RecognitionException {
Record_property_valueContext _localctx = new Record_property_valueContext(_ctx, getState());
enterRule(_localctx, 22, RULE_record_property_value);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(293);
match(LBRACK);
setState(294);
((Record_property_valueContext) _localctx).field_property_association = field_property_association();
((Record_property_valueContext) _localctx).field_assign
.add(((Record_property_valueContext) _localctx).field_property_association);
setState(298);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == IDENT) {
{
{
setState(295);
((Record_property_valueContext) _localctx).field_property_association = field_property_association();
((Record_property_valueContext) _localctx).field_assign
.add(((Record_property_valueContext) _localctx).field_property_association);
}
}
setState(300);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(301);
match(RBRACK);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Field_property_associationContext extends ParserRuleContext {
public DeclarativeBasicPropertyAssociation result;
public Token property;
public TerminalNode SEMICOLON() {
return getToken(AadlBaParser.SEMICOLON, 0);
}
public Property_valueContext property_value() {
return getRuleContext(Property_valueContext.class, 0);
}
public TerminalNode PROPERTYASSIGN() {
return getToken(AadlBaParser.PROPERTYASSIGN, 0);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public Field_property_associationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_field_property_association;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterField_property_association(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitField_property_association(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitField_property_association(this);
else
return visitor.visitChildren(this);
}
}
public final Field_property_associationContext field_property_association() throws RecognitionException {
Field_property_associationContext _localctx = new Field_property_associationContext(_ctx, getState());
enterRule(_localctx, 24, RULE_field_property_association);
try {
enterOuterAlt(_localctx, 1);
{
setState(303);
((Field_property_associationContext) _localctx).property = match(IDENT);
setState(304);
match(PROPERTYASSIGN);
setState(305);
property_value();
setState(306);
match(SEMICOLON);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Classifier_property_valueContext extends ParserRuleContext {
public DeclarativeClassifierValue result;
public Unique_component_classifier_referenceContext classifier;
public TerminalNode CLASSIFIER() {
return getToken(AadlBaParser.CLASSIFIER, 0);
}
public TerminalNode LPAREN() {
return getToken(AadlBaParser.LPAREN, 0);
}
public TerminalNode RPAREN() {
return getToken(AadlBaParser.RPAREN, 0);
}
public Unique_component_classifier_referenceContext unique_component_classifier_reference() {
return getRuleContext(Unique_component_classifier_referenceContext.class, 0);
}
public Classifier_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_classifier_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterClassifier_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitClassifier_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitClassifier_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Classifier_property_valueContext classifier_property_value() throws RecognitionException {
Classifier_property_valueContext _localctx = new Classifier_property_valueContext(_ctx, getState());
enterRule(_localctx, 26, RULE_classifier_property_value);
try {
enterOuterAlt(_localctx, 1);
{
setState(308);
match(CLASSIFIER);
setState(309);
match(LPAREN);
setState(310);
((Classifier_property_valueContext) _localctx).classifier = unique_component_classifier_reference();
setState(311);
match(RPAREN);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Unit_referenceContext extends ParserRuleContext {
public QualifiedNamedElement result;
public Qualifiable_propertyContext qualifiable_property() {
return getRuleContext(Qualifiable_propertyContext.class, 0);
}
public Unit_referenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_unit_reference;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterUnit_reference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitUnit_reference(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitUnit_reference(this);
else
return visitor.visitChildren(this);
}
}
public final Unit_referenceContext unit_reference() throws RecognitionException {
Unit_referenceContext _localctx = new Unit_referenceContext(_ctx, getState());
enterRule(_localctx, 28, RULE_unit_reference);
try {
enterOuterAlt(_localctx, 1);
{
{
setState(313);
qualifiable_property(_localctx.result);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Integer_property_valueContext extends ParserRuleContext {
public BehaviorIntegerLiteral result;
public Signed_intContext value;
public Unit_referenceContext unit;
public Unit_referenceContext unit_reference() {
return getRuleContext(Unit_referenceContext.class, 0);
}
public Signed_intContext signed_int() {
return getRuleContext(Signed_intContext.class, 0);
}
public Integer_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_integer_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterInteger_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitInteger_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitInteger_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Integer_property_valueContext integer_property_value() throws RecognitionException {
Integer_property_valueContext _localctx = new Integer_property_valueContext(_ctx, getState());
enterRule(_localctx, 30, RULE_integer_property_value);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(315);
((Integer_property_valueContext) _localctx).value = signed_int();
setState(317);
_la = _input.LA(1);
if (_la == IDENT) {
{
setState(316);
((Integer_property_valueContext) _localctx).unit = unit_reference();
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Signed_intContext extends ParserRuleContext {
public Integer result;
public Integer_literalContext integer_literal() {
return getRuleContext(Integer_literalContext.class, 0);
}
public Signed_intContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_signed_int;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterSigned_int(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitSigned_int(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitSigned_int(this);
else
return visitor.visitChildren(this);
}
}
public final Signed_intContext signed_int() throws RecognitionException {
Signed_intContext _localctx = new Signed_intContext(_ctx, getState());
enterRule(_localctx, 32, RULE_signed_int);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(320);
_la = _input.LA(1);
if (_la == PLUS || _la == MINUS) {
{
setState(319);
_la = _input.LA(1);
if (!(_la == PLUS || _la == MINUS)) {
_errHandler.recoverInline(this);
}
consume();
}
}
setState(322);
integer_literal();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Real_property_valueContext extends ParserRuleContext {
public BehaviorRealLiteral result;
public Signed_realContext value;
public Unit_referenceContext unit;
public Unit_referenceContext unit_reference() {
return getRuleContext(Unit_referenceContext.class, 0);
}
public Signed_realContext signed_real() {
return getRuleContext(Signed_realContext.class, 0);
}
public Real_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_real_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterReal_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitReal_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitReal_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Real_property_valueContext real_property_value() throws RecognitionException {
Real_property_valueContext _localctx = new Real_property_valueContext(_ctx, getState());
enterRule(_localctx, 34, RULE_real_property_value);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(324);
((Real_property_valueContext) _localctx).value = signed_real();
setState(326);
_la = _input.LA(1);
if (_la == IDENT) {
{
setState(325);
((Real_property_valueContext) _localctx).unit = unit_reference();
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class String_property_valueContext extends ParserRuleContext {
public BehaviorStringLiteral result;
public TerminalNode STRING_LITERAL() {
return getToken(AadlBaParser.STRING_LITERAL, 0);
}
public String_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_string_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterString_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitString_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitString_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final String_property_valueContext string_property_value() throws RecognitionException {
String_property_valueContext _localctx = new String_property_valueContext(_ctx, getState());
enterRule(_localctx, 36, RULE_string_property_value);
try {
enterOuterAlt(_localctx, 1);
{
setState(328);
match(STRING_LITERAL);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Signed_realContext extends ParserRuleContext {
public Double result;
public Real_literalContext real_literal() {
return getRuleContext(Real_literalContext.class, 0);
}
public Signed_realContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_signed_real;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterSigned_real(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitSigned_real(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitSigned_real(this);
else
return visitor.visitChildren(this);
}
}
public final Signed_realContext signed_real() throws RecognitionException {
Signed_realContext _localctx = new Signed_realContext(_ctx, getState());
enterRule(_localctx, 38, RULE_signed_real);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(331);
_la = _input.LA(1);
if (_la == PLUS || _la == MINUS) {
{
setState(330);
_la = _input.LA(1);
if (!(_la == PLUS || _la == MINUS)) {
_errHandler.recoverInline(this);
}
consume();
}
}
setState(333);
real_literal();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Numeric_property_valueContext extends ParserRuleContext {
public DeclarativePropertyExpression result;
public Real_property_valueContext real_property_value() {
return getRuleContext(Real_property_valueContext.class, 0);
}
public Integer_property_valueContext integer_property_value() {
return getRuleContext(Integer_property_valueContext.class, 0);
}
public Numeric_property_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_numeric_property_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterNumeric_property_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitNumeric_property_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitNumeric_property_value(this);
else
return visitor.visitChildren(this);
}
}
public final Numeric_property_valueContext numeric_property_value() throws RecognitionException {
Numeric_property_valueContext _localctx = new Numeric_property_valueContext(_ctx, getState());
enterRule(_localctx, 40, RULE_numeric_property_value);
try {
setState(337);
switch (getInterpreter().adaptivePredict(_input, 21, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(335);
integer_property_value();
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(336);
real_property_value();
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Qualifiable_named_elementContext extends ParserRuleContext {
public QualifiedNamedElement result;
public String id1;
public String id2;
public Token identifier1;
public Token identifier2;
public Token identifier3;
public TerminalNode DOUBLECOLON(int i) {
return getToken(AadlBaParser.DOUBLECOLON, i);
}
public TerminalNode DOT() {
return getToken(AadlBaParser.DOT, 0);
}
public TerminalNode IDENT(int i) {
return getToken(AadlBaParser.IDENT, i);
}
public List<TerminalNode> DOUBLECOLON() {
return getTokens(AadlBaParser.DOUBLECOLON);
}
public List<TerminalNode> IDENT() {
return getTokens(AadlBaParser.IDENT);
}
public Qualifiable_named_elementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
public Qualifiable_named_elementContext(ParserRuleContext parent, int invokingState,
QualifiedNamedElement result) {
super(parent, invokingState);
this.result = result;
}
@Override
public int getRuleIndex() {
return RULE_qualifiable_named_element;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterQualifiable_named_element(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitQualifiable_named_element(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitQualifiable_named_element(this);
else
return visitor.visitChildren(this);
}
}
public final Qualifiable_named_elementContext qualifiable_named_element(QualifiedNamedElement result)
throws RecognitionException {
Qualifiable_named_elementContext _localctx = new Qualifiable_named_elementContext(_ctx, getState(), result);
enterRule(_localctx, 42, RULE_qualifiable_named_element);
((Qualifiable_named_elementContext) _localctx).id1 = "";
((Qualifiable_named_elementContext) _localctx).id2 = "";
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(344);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 22, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(339);
((Qualifiable_named_elementContext) _localctx).identifier1 = match(IDENT);
setState(340);
match(DOUBLECOLON);
((Qualifiable_named_elementContext) _localctx).id1 = _localctx.id1
+ (_localctx.id1.length() == 0 ? "" : "::")
+ (((Qualifiable_named_elementContext) _localctx).identifier1 != null
? ((Qualifiable_named_elementContext) _localctx).identifier1.getText()
: null);
}
}
}
setState(346);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 22, _ctx);
}
setState(347);
((Qualifiable_named_elementContext) _localctx).identifier2 = match(IDENT);
((Qualifiable_named_elementContext) _localctx).id2 = (((Qualifiable_named_elementContext) _localctx).identifier2 != null
? ((Qualifiable_named_elementContext) _localctx).identifier2.getText()
: null);
setState(352);
_la = _input.LA(1);
if (_la == DOT) {
{
setState(349);
match(DOT);
setState(350);
((Qualifiable_named_elementContext) _localctx).identifier3 = match(IDENT);
((Qualifiable_named_elementContext) _localctx).id2 = _localctx.id2 + "."
+ (((Qualifiable_named_elementContext) _localctx).identifier3 != null
? ((Qualifiable_named_elementContext) _localctx).identifier3.getText()
: null);
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Unique_component_classifier_referenceContext extends ParserRuleContext {
public QualifiedNamedElement result;
public Qualifiable_named_elementContext qualifiable_named_element() {
return getRuleContext(Qualifiable_named_elementContext.class, 0);
}
public Unique_component_classifier_referenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_unique_component_classifier_reference;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterUnique_component_classifier_reference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitUnique_component_classifier_reference(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitUnique_component_classifier_reference(this);
else
return visitor.visitChildren(this);
}
}
public final Unique_component_classifier_referenceContext unique_component_classifier_reference()
throws RecognitionException {
Unique_component_classifier_referenceContext _localctx = new Unique_component_classifier_referenceContext(_ctx,
getState());
enterRule(_localctx, 44, RULE_unique_component_classifier_reference);
try {
enterOuterAlt(_localctx, 1);
{
{
setState(354);
qualifiable_named_element(_localctx.result);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_state_listContext extends ParserRuleContext {
public BehaviorAnnex ba;
public int stateCount;
public Token IDENT;
public Token separator;
public Token STATE;
public Token SEMICOLON;
public TerminalNode SEMICOLON() {
return getToken(AadlBaParser.SEMICOLON, 0);
}
public TerminalNode COMPLETE() {
return getToken(AadlBaParser.COMPLETE, 0);
}
public TerminalNode FINAL() {
return getToken(AadlBaParser.FINAL, 0);
}
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public TerminalNode COLON() {
return getToken(AadlBaParser.COLON, 0);
}
public TerminalNode IDENT(int i) {
return getToken(AadlBaParser.IDENT, i);
}
public TerminalNode STATE() {
return getToken(AadlBaParser.STATE, 0);
}
public List<TerminalNode> IDENT() {
return getTokens(AadlBaParser.IDENT);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public TerminalNode INITIAL() {
return getToken(AadlBaParser.INITIAL, 0);
}
public Behavior_state_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
public Behavior_state_listContext(ParserRuleContext parent, int invokingState, BehaviorAnnex ba) {
super(parent, invokingState);
this.ba = ba;
}
@Override
public int getRuleIndex() {
return RULE_behavior_state_list;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_state_list(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_state_list(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_state_list(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_state_listContext behavior_state_list(BehaviorAnnex ba) throws RecognitionException {
Behavior_state_listContext _localctx = new Behavior_state_listContext(_ctx, getState(), ba);
enterRule(_localctx, 46, RULE_behavior_state_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(356);
((Behavior_state_listContext) _localctx).IDENT = match(IDENT);
((Behavior_state_listContext) _localctx).stateCount = 0;
setState(365);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == COMMA || _la == IDENT) {
{
{
setState(359);
_la = _input.LA(1);
if (_la == COMMA) {
{
setState(358);
((Behavior_state_listContext) _localctx).separator = match(COMMA);
}
}
setState(361);
((Behavior_state_listContext) _localctx).IDENT = match(IDENT);
_localctx.stateCount++;
if (((Behavior_state_listContext) _localctx).separator == null) {
try {
notifyErrorListeners(
((Behavior_state_listContext) _localctx).IDENT(_localctx.stateCount - 1)
.getSymbol(),
"missing behavior state separator \',\'", null);
} catch (Exception e) {
notifyErrorListeners("missing behavior state separator \',\'");
}
} else {
_localctx.separator = null;
}
}
}
setState(367);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(368);
match(COLON);
setState(370);
_la = _input.LA(1);
if (_la == INITIAL) {
{
setState(369);
match(INITIAL);
}
}
setState(373);
_la = _input.LA(1);
if (_la == COMPLETE) {
{
setState(372);
match(COMPLETE);
}
}
setState(376);
_la = _input.LA(1);
if (_la == FINAL) {
{
setState(375);
match(FINAL);
}
}
setState(378);
((Behavior_state_listContext) _localctx).STATE = match(STATE);
setState(380);
_la = _input.LA(1);
if (_la == SEMICOLON) {
{
setState(379);
((Behavior_state_listContext) _localctx).SEMICOLON = match(SEMICOLON);
}
}
if (((Behavior_state_listContext) _localctx).SEMICOLON() == null) {
try {
notifyErrorListeners(((Behavior_state_listContext) _localctx).STATE().getSymbol(),
"unterminated behavior state (missing ending \';\')", null);
} catch (Exception e) {
notifyErrorListeners("unterminated behavior state (missing ending \';\')");
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_transitionContext extends ParserRuleContext {
public DeclarativeBehaviorTransition result;
public int srcCount;
public Token transId;
public Token separator;
public Token destId;
public Token SEMICOLON;
public TerminalNode SEMICOLON() {
return getToken(AadlBaParser.SEMICOLON, 0);
}
public Behavior_conditionContext behavior_condition() {
return getRuleContext(Behavior_conditionContext.class, 0);
}
public Behavior_action_blockContext behavior_action_block() {
return getRuleContext(Behavior_action_blockContext.class, 0);
}
public TerminalNode COLON() {
return getToken(AadlBaParser.COLON, 0);
}
public TerminalNode IDENT(int i) {
return getToken(AadlBaParser.IDENT, i);
}
public TerminalNode RBRACK() {
return getToken(AadlBaParser.RBRACK, 0);
}
public List<TerminalNode> IDENT() {
return getTokens(AadlBaParser.IDENT);
}
public TerminalNode LBRACK() {
return getToken(AadlBaParser.LBRACK, 0);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public TerminalNode RTRANS() {
return getToken(AadlBaParser.RTRANS, 0);
}
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public NumeralContext numeral() {
return getRuleContext(NumeralContext.class, 0);
}
public TerminalNode LTRANS() {
return getToken(AadlBaParser.LTRANS, 0);
}
public Behavior_transitionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_transition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_transition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_transition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_transition(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_transitionContext behavior_transition() throws RecognitionException {
Behavior_transitionContext _localctx = new Behavior_transitionContext(_ctx, getState());
enterRule(_localctx, 48, RULE_behavior_transition);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(392);
switch (getInterpreter().adaptivePredict(_input, 31, _ctx)) {
case 1: {
setState(384);
((Behavior_transitionContext) _localctx).transId = match(IDENT);
setState(389);
_la = _input.LA(1);
if (_la == LBRACK) {
{
setState(385);
match(LBRACK);
setState(386);
numeral();
setState(387);
match(RBRACK);
}
}
setState(391);
match(COLON);
}
break;
}
setState(394);
match(IDENT);
if (((Behavior_transitionContext) _localctx).transId != null) {
((Behavior_transitionContext) _localctx).srcCount = 1;
} else {
((Behavior_transitionContext) _localctx).srcCount = 0;
}
setState(403);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == COMMA || _la == IDENT) {
{
{
setState(397);
_la = _input.LA(1);
if (_la == COMMA) {
{
setState(396);
((Behavior_transitionContext) _localctx).separator = match(COMMA);
}
}
setState(399);
match(IDENT);
_localctx.srcCount++;
if (((Behavior_transitionContext) _localctx).separator == null) {
try {
notifyErrorListeners(_localctx.IDENT(_localctx.srcCount - 1).getSymbol(),
"missing behavior state source separator \',\'", null);
} catch (Exception e) {
notifyErrorListeners("missing behavior state source separator \',\'");
}
} else {
_localctx.separator = null;
}
}
}
setState(405);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(406);
match(LTRANS);
setState(407);
behavior_condition();
setState(408);
match(RTRANS);
setState(409);
((Behavior_transitionContext) _localctx).destId = match(IDENT);
setState(411);
_la = _input.LA(1);
if (_la == LCURLY) {
{
setState(410);
behavior_action_block();
}
}
setState(414);
_la = _input.LA(1);
if (_la == SEMICOLON) {
{
setState(413);
((Behavior_transitionContext) _localctx).SEMICOLON = match(SEMICOLON);
}
}
if (((Behavior_transitionContext) _localctx).SEMICOLON() == null) {
try {
Token token = null;
if (_localctx.behavior_action_block() != null) {
token = _localctx.behavior_action_block().getStop();
} else {
token = ((Behavior_transitionContext) _localctx).destId;
}
notifyErrorListeners(token, "unterminated behavior transition (missing ending \';\')", null);
} catch (Exception e) {
notifyErrorListeners("unterminated behavior transition (missing ending \';\')");
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_action_blockContext extends ParserRuleContext {
public BehaviorActionBlock result;
public Action_blockContext action_block() {
return getRuleContext(Action_blockContext.class, 0);
}
public Behavior_timeContext behavior_time() {
return getRuleContext(Behavior_timeContext.class, 0);
}
public TerminalNode TIMEOUT() {
return getToken(AadlBaParser.TIMEOUT, 0);
}
public Behavior_action_blockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_action_block;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_action_block(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_action_block(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_action_block(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_action_blockContext behavior_action_block() throws RecognitionException {
Behavior_action_blockContext _localctx = new Behavior_action_blockContext(_ctx, getState());
enterRule(_localctx, 50, RULE_behavior_action_block);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(418);
action_block();
setState(421);
_la = _input.LA(1);
if (_la == TIMEOUT) {
{
setState(419);
match(TIMEOUT);
setState(420);
behavior_time();
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Action_blockContext extends ParserRuleContext {
public BehaviorActionBlock result;
public Token LCURLY;
public Token RCURLY;
public Behavior_actionsContext behavior_actions() {
return getRuleContext(Behavior_actionsContext.class, 0);
}
public TerminalNode RCURLY(int i) {
return getToken(AadlBaParser.RCURLY, i);
}
public List<TerminalNode> RCURLY() {
return getTokens(AadlBaParser.RCURLY);
}
public List<TerminalNode> LCURLY() {
return getTokens(AadlBaParser.LCURLY);
}
public TerminalNode LCURLY(int i) {
return getToken(AadlBaParser.LCURLY, i);
}
public Action_blockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_action_block;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterAction_block(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitAction_block(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitAction_block(this);
else
return visitor.visitChildren(this);
}
}
public final Action_blockContext action_block() throws RecognitionException {
Action_blockContext _localctx = new Action_blockContext(_ctx, getState());
enterRule(_localctx, 52, RULE_action_block);
try {
int _alt;
setState(440);
switch (getInterpreter().adaptivePredict(_input, 39, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(423);
match(LCURLY);
setState(424);
behavior_actions();
setState(425);
match(RCURLY);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(428);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(427);
((Action_blockContext) _localctx).LCURLY = match(LCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(430);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 37, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(432);
behavior_actions();
setState(434);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(433);
((Action_blockContext) _localctx).RCURLY = match(RCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(436);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 38, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
notifyDuplicateSymbol(((Action_blockContext) _localctx).LCURLY(),
((Action_blockContext) _localctx).RCURLY(), "{}");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_conditionContext extends ParserRuleContext {
public BehaviorCondition result;
public Dispatch_conditionContext dispatch_condition() {
return getRuleContext(Dispatch_conditionContext.class, 0);
}
public TerminalNode ON() {
return getToken(AadlBaParser.ON, 0);
}
public Execute_conditionContext execute_condition() {
return getRuleContext(Execute_conditionContext.class, 0);
}
public Mode_switch_trigger_logical_expressionContext mode_switch_trigger_logical_expression() {
return getRuleContext(Mode_switch_trigger_logical_expressionContext.class, 0);
}
public Behavior_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_condition(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_conditionContext behavior_condition() throws RecognitionException {
Behavior_conditionContext _localctx = new Behavior_conditionContext(_ctx, getState());
enterRule(_localctx, 54, RULE_behavior_condition);
int _la;
try {
setState(449);
switch (getInterpreter().adaptivePredict(_input, 41, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
{
setState(442);
match(ON);
setState(443);
dispatch_condition();
}
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
{
setState(444);
match(ON);
setState(445);
mode_switch_trigger_logical_expression();
}
}
break;
case 3:
enterOuterAlt(_localctx, 3); {
setState(447);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << FALSE) | (1L << NOT)
| (1L << OTHERWISE) | (1L << TIMEOUT) | (1L << TRUE) | (1L << LPAREN))) != 0)
|| ((((_la - 68)) & ~0x3f) == 0
&& ((1L << (_la - 68)) & ((1L << (PLUS - 68)) | (1L << (MINUS - 68))
| (1L << (HASH - 68)) | (1L << (IDENT - 68)) | (1L << (STRING_LITERAL - 68))
| (1L << (REAL_LIT - 68)) | (1L << (INTEGER_LIT - 68)))) != 0)) {
{
setState(446);
execute_condition();
}
}
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Execute_conditionContext extends ParserRuleContext {
public ExecuteCondition result;
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public TerminalNode OTHERWISE() {
return getToken(AadlBaParser.OTHERWISE, 0);
}
public TerminalNode TIMEOUT() {
return getToken(AadlBaParser.TIMEOUT, 0);
}
public Execute_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_execute_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterExecute_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitExecute_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitExecute_condition(this);
else
return visitor.visitChildren(this);
}
}
public final Execute_conditionContext execute_condition() throws RecognitionException {
Execute_conditionContext _localctx = new Execute_conditionContext(_ctx, getState());
enterRule(_localctx, 56, RULE_execute_condition);
try {
setState(454);
switch (_input.LA(1)) {
case ABS:
case FALSE:
case NOT:
case TRUE:
case LPAREN:
case PLUS:
case MINUS:
case HASH:
case IDENT:
case STRING_LITERAL:
case REAL_LIT:
case INTEGER_LIT:
enterOuterAlt(_localctx, 1); {
setState(451);
value_expression();
}
break;
case TIMEOUT:
enterOuterAlt(_localctx, 2); {
setState(452);
match(TIMEOUT);
}
break;
case OTHERWISE:
enterOuterAlt(_localctx, 3); {
setState(453);
match(OTHERWISE);
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Integer_value_constantContext extends ParserRuleContext {
public IntegerValueConstant result;
public Integer_literalContext integer_literal() {
return getRuleContext(Integer_literalContext.class, 0);
}
public Property_referenceContext property_reference() {
return getRuleContext(Property_referenceContext.class, 0);
}
public Integer_value_constantContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_integer_value_constant;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterInteger_value_constant(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitInteger_value_constant(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitInteger_value_constant(this);
else
return visitor.visitChildren(this);
}
}
public final Integer_value_constantContext integer_value_constant() throws RecognitionException {
Integer_value_constantContext _localctx = new Integer_value_constantContext(_ctx, getState());
enterRule(_localctx, 58, RULE_integer_value_constant);
try {
setState(458);
switch (_input.LA(1)) {
case INTEGER_LIT:
enterOuterAlt(_localctx, 1); {
setState(456);
integer_literal();
}
break;
case HASH:
case IDENT:
enterOuterAlt(_localctx, 2); {
setState(457);
property_reference();
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Dispatch_conditionContext extends ParserRuleContext {
public DispatchCondition result;
public int count;
public Token separator;
public TerminalNode FROZEN() {
return getToken(AadlBaParser.FROZEN, 0);
}
public List<ReferenceContext> reference() {
return getRuleContexts(ReferenceContext.class);
}
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public Dispatch_trigger_conditionContext dispatch_trigger_condition() {
return getRuleContext(Dispatch_trigger_conditionContext.class, 0);
}
public ReferenceContext reference(int i) {
return getRuleContext(ReferenceContext.class, i);
}
public TerminalNode DISPATCH() {
return getToken(AadlBaParser.DISPATCH, 0);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public Dispatch_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_dispatch_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterDispatch_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitDispatch_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitDispatch_condition(this);
else
return visitor.visitChildren(this);
}
}
public final Dispatch_conditionContext dispatch_condition() throws RecognitionException {
Dispatch_conditionContext _localctx = new Dispatch_conditionContext(_ctx, getState());
enterRule(_localctx, 60, RULE_dispatch_condition);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(460);
match(DISPATCH);
setState(462);
_la = _input.LA(1);
if (((((_la - 34)) & ~0x3f) == 0 && ((1L << (_la - 34))
& ((1L << (STOP - 34)) | (1L << (TIMEOUT - 34)) | (1L << (IDENT - 34)))) != 0)) {
{
setState(461);
dispatch_trigger_condition();
}
}
setState(478);
_la = _input.LA(1);
if (_la == FROZEN) {
{
setState(464);
match(FROZEN);
setState(465);
reference();
((Dispatch_conditionContext) _localctx).count = 0;
setState(475);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == COMMA || _la == IDENT) {
{
{
setState(468);
_la = _input.LA(1);
if (_la == COMMA) {
{
setState(467);
((Dispatch_conditionContext) _localctx).separator = match(COMMA);
}
}
setState(470);
reference();
_localctx.count++;
if (((Dispatch_conditionContext) _localctx).separator == null) {
try {
notifyErrorListeners(_localctx.reference(_localctx.count - 1).getStop(),
"missing frozen port separator \',\'", null);
} catch (Exception e) {
notifyErrorListeners("missing frozen port separator \',\'");
}
} else {
_localctx.separator = null;
}
}
}
setState(477);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Dispatch_trigger_conditionContext extends ParserRuleContext {
public DispatchTriggerCondition result;
public Dispatch_trigger_logical_expressionContext dispatch_trigger_logical_expression() {
return getRuleContext(Dispatch_trigger_logical_expressionContext.class, 0);
}
public TerminalNode STOP() {
return getToken(AadlBaParser.STOP, 0);
}
public Behavior_timeContext behavior_time() {
return getRuleContext(Behavior_timeContext.class, 0);
}
public TerminalNode TIMEOUT() {
return getToken(AadlBaParser.TIMEOUT, 0);
}
public Dispatch_trigger_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_dispatch_trigger_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterDispatch_trigger_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitDispatch_trigger_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitDispatch_trigger_condition(this);
else
return visitor.visitChildren(this);
}
}
public final Dispatch_trigger_conditionContext dispatch_trigger_condition() throws RecognitionException {
Dispatch_trigger_conditionContext _localctx = new Dispatch_trigger_conditionContext(_ctx, getState());
enterRule(_localctx, 62, RULE_dispatch_trigger_condition);
int _la;
try {
setState(486);
switch (_input.LA(1)) {
case IDENT:
enterOuterAlt(_localctx, 1); {
setState(480);
dispatch_trigger_logical_expression();
}
break;
case TIMEOUT:
enterOuterAlt(_localctx, 2); {
{
setState(481);
match(TIMEOUT);
setState(483);
_la = _input.LA(1);
if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76))
& ((1L << (HASH - 76)) | (1L << (IDENT - 76)) | (1L << (INTEGER_LIT - 76)))) != 0)) {
{
setState(482);
behavior_time();
}
}
}
}
break;
case STOP:
enterOuterAlt(_localctx, 3); {
setState(485);
match(STOP);
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Mode_switch_trigger_logical_expressionContext extends ParserRuleContext {
public ModeSwitchTriggerLogicalExpression result;
public List<Mode_switch_trigger_conjunctionContext> mode_switch_trigger_conjunction() {
return getRuleContexts(Mode_switch_trigger_conjunctionContext.class);
}
public List<TerminalNode> OR() {
return getTokens(AadlBaParser.OR);
}
public Mode_switch_trigger_conjunctionContext mode_switch_trigger_conjunction(int i) {
return getRuleContext(Mode_switch_trigger_conjunctionContext.class, i);
}
public TerminalNode OR(int i) {
return getToken(AadlBaParser.OR, i);
}
public Mode_switch_trigger_logical_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_mode_switch_trigger_logical_expression;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterMode_switch_trigger_logical_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitMode_switch_trigger_logical_expression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitMode_switch_trigger_logical_expression(this);
else
return visitor.visitChildren(this);
}
}
public final Mode_switch_trigger_logical_expressionContext mode_switch_trigger_logical_expression()
throws RecognitionException {
Mode_switch_trigger_logical_expressionContext _localctx = new Mode_switch_trigger_logical_expressionContext(
_ctx, getState());
enterRule(_localctx, 64, RULE_mode_switch_trigger_logical_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(488);
mode_switch_trigger_conjunction();
setState(493);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == OR) {
{
{
setState(489);
match(OR);
setState(490);
mode_switch_trigger_conjunction();
}
}
setState(495);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Dispatch_trigger_logical_expressionContext extends ParserRuleContext {
public DispatchTriggerLogicalExpression result;
public List<Dispatch_conjunctionContext> dispatch_conjunction() {
return getRuleContexts(Dispatch_conjunctionContext.class);
}
public Dispatch_conjunctionContext dispatch_conjunction(int i) {
return getRuleContext(Dispatch_conjunctionContext.class, i);
}
public List<TerminalNode> OR() {
return getTokens(AadlBaParser.OR);
}
public TerminalNode OR(int i) {
return getToken(AadlBaParser.OR, i);
}
public Dispatch_trigger_logical_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_dispatch_trigger_logical_expression;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterDispatch_trigger_logical_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitDispatch_trigger_logical_expression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitDispatch_trigger_logical_expression(this);
else
return visitor.visitChildren(this);
}
}
public final Dispatch_trigger_logical_expressionContext dispatch_trigger_logical_expression()
throws RecognitionException {
Dispatch_trigger_logical_expressionContext _localctx = new Dispatch_trigger_logical_expressionContext(_ctx,
getState());
enterRule(_localctx, 66, RULE_dispatch_trigger_logical_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(496);
dispatch_conjunction();
setState(501);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == OR) {
{
{
setState(497);
match(OR);
setState(498);
dispatch_conjunction();
}
}
setState(503);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Dispatch_conjunctionContext extends ParserRuleContext {
public DispatchConjunction result;
public TerminalNode AND(int i) {
return getToken(AadlBaParser.AND, i);
}
public List<ReferenceContext> reference() {
return getRuleContexts(ReferenceContext.class);
}
public ReferenceContext reference(int i) {
return getRuleContext(ReferenceContext.class, i);
}
public List<TerminalNode> AND() {
return getTokens(AadlBaParser.AND);
}
public Dispatch_conjunctionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_dispatch_conjunction;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterDispatch_conjunction(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitDispatch_conjunction(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitDispatch_conjunction(this);
else
return visitor.visitChildren(this);
}
}
public final Dispatch_conjunctionContext dispatch_conjunction() throws RecognitionException {
Dispatch_conjunctionContext _localctx = new Dispatch_conjunctionContext(_ctx, getState());
enterRule(_localctx, 68, RULE_dispatch_conjunction);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(504);
reference();
setState(509);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == AND) {
{
{
setState(505);
match(AND);
setState(506);
reference();
}
}
setState(511);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Mode_switch_trigger_conjunctionContext extends ParserRuleContext {
public ModeSwitchConjunction result;
public TerminalNode AND(int i) {
return getToken(AadlBaParser.AND, i);
}
public List<ReferenceContext> reference() {
return getRuleContexts(ReferenceContext.class);
}
public ReferenceContext reference(int i) {
return getRuleContext(ReferenceContext.class, i);
}
public List<TerminalNode> AND() {
return getTokens(AadlBaParser.AND);
}
public Mode_switch_trigger_conjunctionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_mode_switch_trigger_conjunction;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterMode_switch_trigger_conjunction(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitMode_switch_trigger_conjunction(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitMode_switch_trigger_conjunction(this);
else
return visitor.visitChildren(this);
}
}
public final Mode_switch_trigger_conjunctionContext mode_switch_trigger_conjunction() throws RecognitionException {
Mode_switch_trigger_conjunctionContext _localctx = new Mode_switch_trigger_conjunctionContext(_ctx, getState());
enterRule(_localctx, 70, RULE_mode_switch_trigger_conjunction);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(512);
reference();
setState(517);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == AND) {
{
{
setState(513);
match(AND);
setState(514);
reference();
}
}
setState(519);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_actionsContext extends ParserRuleContext {
public BehaviorActions result;
public int actionCount;
public Token separator;
public Token ending;
public List<Behavior_actionContext> behavior_action() {
return getRuleContexts(Behavior_actionContext.class);
}
public List<TerminalNode> SEMICOLON() {
return getTokens(AadlBaParser.SEMICOLON);
}
public TerminalNode CONCAT(int i) {
return getToken(AadlBaParser.CONCAT, i);
}
public TerminalNode SEMICOLON(int i) {
return getToken(AadlBaParser.SEMICOLON, i);
}
public Behavior_actionContext behavior_action(int i) {
return getRuleContext(Behavior_actionContext.class, i);
}
public List<TerminalNode> CONCAT() {
return getTokens(AadlBaParser.CONCAT);
}
public Behavior_actionsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_actions;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_actions(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_actions(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_actions(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_actionsContext behavior_actions() throws RecognitionException {
Behavior_actionsContext _localctx = new Behavior_actionsContext(_ctx, getState());
enterRule(_localctx, 72, RULE_behavior_actions);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(520);
behavior_action();
((Behavior_actionsContext) _localctx).actionCount = 0;
setState(552);
switch (getInterpreter().adaptivePredict(_input, 60, _ctx)) {
case 1: {
setState(530);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 55, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(523);
_la = _input.LA(1);
if (_la == SEMICOLON) {
{
setState(522);
((Behavior_actionsContext) _localctx).separator = match(SEMICOLON);
}
}
setState(525);
behavior_action();
_localctx.actionCount++;
if (((Behavior_actionsContext) _localctx).separator == null) {
try {
notifyErrorListeners(
_localctx.behavior_action(_localctx.actionCount - 1).getStop(),
"missing behavior action sequence separator \';\'", null);
} catch (Exception e) {
notifyErrorListeners("missing behavior action sequence separator \';\'");
}
} else {
_localctx.separator = null;
}
}
}
}
setState(532);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 55, _ctx);
}
setState(534);
switch (getInterpreter().adaptivePredict(_input, 56, _ctx)) {
case 1: {
setState(533);
((Behavior_actionsContext) _localctx).ending = match(SEMICOLON);
}
break;
}
if (((Behavior_actionsContext) _localctx).ending != null) {
notifyErrorListeners(((Behavior_actionsContext) _localctx).ending,
"extraneous input \'" + (((Behavior_actionsContext) _localctx).ending != null
? ((Behavior_actionsContext) _localctx).ending.getText()
: null) + "\', delete it",
null);
}
}
break;
case 2: {
setState(545);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 58, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(538);
_la = _input.LA(1);
if (_la == CONCAT) {
{
setState(537);
((Behavior_actionsContext) _localctx).separator = match(CONCAT);
}
}
setState(540);
behavior_action();
_localctx.actionCount++;
if (((Behavior_actionsContext) _localctx).separator == null) {
try {
notifyErrorListeners(
_localctx.behavior_action(_localctx.actionCount - 1).getStop(),
"missing behavior action set separator \'&\'", null);
} catch (Exception e) {
notifyErrorListeners("missing behavior action set separator \'&\'");
}
} else {
_localctx.separator = null;
}
}
}
}
setState(547);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 58, _ctx);
}
setState(549);
switch (getInterpreter().adaptivePredict(_input, 59, _ctx)) {
case 1: {
setState(548);
((Behavior_actionsContext) _localctx).ending = match(CONCAT);
}
break;
}
if (((Behavior_actionsContext) _localctx).ending != null) {
notifyErrorListeners(((Behavior_actionsContext) _localctx).ending,
"extraneous input \'" + (((Behavior_actionsContext) _localctx).ending != null
? ((Behavior_actionsContext) _localctx).ending.getText()
: null) + "\', delete it",
null);
}
}
break;
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_actionContext extends ParserRuleContext {
public BehaviorAction result;
public For_statementContext for_statement() {
return getRuleContext(For_statementContext.class, 0);
}
public While_statementContext while_statement() {
return getRuleContext(While_statementContext.class, 0);
}
public Basic_actionContext basic_action() {
return getRuleContext(Basic_actionContext.class, 0);
}
public Forall_statementContext forall_statement() {
return getRuleContext(Forall_statementContext.class, 0);
}
public If_statementContext if_statement() {
return getRuleContext(If_statementContext.class, 0);
}
public Behavior_action_blockContext behavior_action_block() {
return getRuleContext(Behavior_action_blockContext.class, 0);
}
public Dountil_statementContext dountil_statement() {
return getRuleContext(Dountil_statementContext.class, 0);
}
public Behavior_actionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_action;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_action(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_action(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_action(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_actionContext behavior_action() throws RecognitionException {
Behavior_actionContext _localctx = new Behavior_actionContext(_ctx, getState());
enterRule(_localctx, 74, RULE_behavior_action);
try {
setState(561);
switch (_input.LA(1)) {
case COMPUTATION:
case STAR:
case IDENT:
enterOuterAlt(_localctx, 1); {
setState(554);
basic_action();
}
break;
case IF:
enterOuterAlt(_localctx, 2); {
setState(555);
if_statement();
}
break;
case FOR:
enterOuterAlt(_localctx, 3); {
setState(556);
for_statement();
}
break;
case WHILE:
enterOuterAlt(_localctx, 4); {
setState(557);
while_statement();
}
break;
case DO:
enterOuterAlt(_localctx, 5); {
setState(558);
dountil_statement();
}
break;
case LCURLY:
enterOuterAlt(_localctx, 6); {
setState(559);
behavior_action_block();
}
break;
case FORALL:
enterOuterAlt(_localctx, 7); {
setState(560);
forall_statement();
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class If_statementContext extends ParserRuleContext {
public IfStatement result;
public Token LPAREN;
public Token RPAREN;
public Token END;
public Token ERR_END;
public TerminalNode ELSE() {
return getToken(AadlBaParser.ELSE, 0);
}
public List<TerminalNode> IF() {
return getTokens(AadlBaParser.IF);
}
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public List<Behavior_actionsContext> behavior_actions() {
return getRuleContexts(Behavior_actionsContext.class);
}
public Elsif_statementContext elsif_statement(int i) {
return getRuleContext(Elsif_statementContext.class, i);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode ERR_END() {
return getToken(AadlBaParser.ERR_END, 0);
}
public TerminalNode IF(int i) {
return getToken(AadlBaParser.IF, i);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public Behavior_actionsContext behavior_actions(int i) {
return getRuleContext(Behavior_actionsContext.class, i);
}
public TerminalNode END() {
return getToken(AadlBaParser.END, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public List<Elsif_statementContext> elsif_statement() {
return getRuleContexts(Elsif_statementContext.class);
}
public If_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_if_statement;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterIf_statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitIf_statement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitIf_statement(this);
else
return visitor.visitChildren(this);
}
}
public final If_statementContext if_statement() throws RecognitionException {
If_statementContext _localctx = new If_statementContext(_ctx, getState());
enterRule(_localctx, 76, RULE_if_statement);
int _la;
try {
int _alt;
setState(611);
switch (getInterpreter().adaptivePredict(_input, 69, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(563);
match(IF);
setState(564);
match(LPAREN);
setState(565);
value_expression();
setState(566);
match(RPAREN);
setState(567);
behavior_actions();
setState(571);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == ELSIF || _la == ERR_ELSIF) {
{
{
setState(568);
elsif_statement();
}
}
setState(573);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(576);
_la = _input.LA(1);
if (_la == ELSE) {
{
setState(574);
match(ELSE);
setState(575);
behavior_actions();
}
}
setState(578);
match(END);
setState(579);
match(IF);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(581);
match(IF);
setState(583);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(582);
((If_statementContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(585);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 64, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(587);
value_expression();
setState(589);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(588);
((If_statementContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(591);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
setState(593);
behavior_actions();
setState(597);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 66, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(594);
elsif_statement();
}
}
}
setState(599);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 66, _ctx);
}
setState(602);
switch (getInterpreter().adaptivePredict(_input, 67, _ctx)) {
case 1: {
setState(600);
match(ELSE);
setState(601);
behavior_actions();
}
break;
}
setState(607);
switch (getInterpreter().adaptivePredict(_input, 68, _ctx)) {
case 1: {
setState(604);
((If_statementContext) _localctx).END = match(END);
setState(605);
match(IF);
}
break;
case 2: {
setState(606);
((If_statementContext) _localctx).ERR_END = match(ERR_END);
}
break;
}
if (((If_statementContext) _localctx).ERR_END() != null) {
String msg = "mismatched input \'" + ((If_statementContext) _localctx).ERR_END().getText()
+ "\' expecting \'end if\'";
notifyErrorListeners(((If_statementContext) _localctx).ERR_END().getSymbol(), msg, null);
} else if (((If_statementContext) _localctx).END() == null) {
notifyErrorListeners("unterminated if statement (missing \'end if\')");
}
if (((If_statementContext) _localctx).LPAREN().size() > 1
|| ((If_statementContext) _localctx).RPAREN().size() > 1) {
notifyDuplicateSymbol(((If_statementContext) _localctx).LPAREN(),
((If_statementContext) _localctx).RPAREN(), "()");
}
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Elsif_statementContext extends ParserRuleContext {
public IfStatement result;
public Token ERR_ELSIF;
public Token LPAREN;
public Token RPAREN;
public TerminalNode ELSIF() {
return getToken(AadlBaParser.ELSIF, 0);
}
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public Behavior_actionsContext behavior_actions() {
return getRuleContext(Behavior_actionsContext.class, 0);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode ERR_ELSIF() {
return getToken(AadlBaParser.ERR_ELSIF, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public Elsif_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_elsif_statement;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterElsif_statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitElsif_statement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitElsif_statement(this);
else
return visitor.visitChildren(this);
}
}
public final Elsif_statementContext elsif_statement() throws RecognitionException {
Elsif_statementContext _localctx = new Elsif_statementContext(_ctx, getState());
enterRule(_localctx, 78, RULE_elsif_statement);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(613);
_la = _input.LA(1);
if (!(_la == ELSIF || _la == ERR_ELSIF)) {
_errHandler.recoverInline(this);
}
consume();
setState(615);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(614);
((Elsif_statementContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(617);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 70, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(619);
value_expression();
setState(621);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(620);
((Elsif_statementContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(623);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
setState(625);
behavior_actions();
if (((Elsif_statementContext) _localctx).LPAREN().size() > 1
|| ((Elsif_statementContext) _localctx).RPAREN().size() > 1) {
notifyDuplicateSymbol(((Elsif_statementContext) _localctx).LPAREN(),
((Elsif_statementContext) _localctx).RPAREN(), "()");
}
if (((Elsif_statementContext) _localctx).ERR_ELSIF() != null) {
String msg = "mismatched input \'" + ((Elsif_statementContext) _localctx).ERR_ELSIF().getText()
+ "\' expecting \'" + AadlBaLexer.tokenNames[AadlBaLexer.ELSIF] + '\'';
notifyErrorListeners(((Elsif_statementContext) _localctx).ERR_ELSIF().getSymbol(), msg, null);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class For_statementContext extends ParserRuleContext {
public ForOrForAllStatement result;
public Token LCURLY;
public Token RCURLY;
public Behavior_actionsContext behavior_actions() {
return getRuleContext(Behavior_actionsContext.class, 0);
}
public TerminalNode RCURLY(int i) {
return getToken(AadlBaParser.RCURLY, i);
}
public List<TerminalNode> RCURLY() {
return getTokens(AadlBaParser.RCURLY);
}
public List<TerminalNode> LCURLY() {
return getTokens(AadlBaParser.LCURLY);
}
public TerminalNode LCURLY(int i) {
return getToken(AadlBaParser.LCURLY, i);
}
public For_conditionContext for_condition() {
return getRuleContext(For_conditionContext.class, 0);
}
public For_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_for_statement;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterFor_statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitFor_statement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitFor_statement(this);
else
return visitor.visitChildren(this);
}
}
public final For_statementContext for_statement() throws RecognitionException {
For_statementContext _localctx = new For_statementContext(_ctx, getState());
enterRule(_localctx, 80, RULE_for_statement);
try {
int _alt;
setState(647);
switch (getInterpreter().adaptivePredict(_input, 74, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(628);
for_condition();
setState(629);
match(LCURLY);
setState(630);
behavior_actions();
setState(631);
match(RCURLY);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(633);
for_condition();
setState(635);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(634);
((For_statementContext) _localctx).LCURLY = match(LCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(637);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 72, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(639);
behavior_actions();
setState(641);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(640);
((For_statementContext) _localctx).RCURLY = match(RCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(643);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 73, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
notifyDuplicateSymbol(((For_statementContext) _localctx).LCURLY(),
((For_statementContext) _localctx).RCURLY(), "{}");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class For_conditionContext extends ParserRuleContext {
public ForOrForAllStatement result;
public Token LPAREN;
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public TerminalNode COLON() {
return getToken(AadlBaParser.COLON, 0);
}
public TerminalNode FOR() {
return getToken(AadlBaParser.FOR, 0);
}
public Element_valuesContext element_values() {
return getRuleContext(Element_valuesContext.class, 0);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public TerminalNode IN() {
return getToken(AadlBaParser.IN, 0);
}
public Unique_component_classifier_referenceContext unique_component_classifier_reference() {
return getRuleContext(Unique_component_classifier_referenceContext.class, 0);
}
public For_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_for_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterFor_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitFor_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitFor_condition(this);
else
return visitor.visitChildren(this);
}
}
public final For_conditionContext for_condition() throws RecognitionException {
For_conditionContext _localctx = new For_conditionContext(_ctx, getState());
enterRule(_localctx, 82, RULE_for_condition);
int _la;
try {
setState(676);
switch (getInterpreter().adaptivePredict(_input, 77, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(649);
match(FOR);
setState(650);
match(LPAREN);
setState(651);
match(IDENT);
setState(652);
match(COLON);
setState(653);
unique_component_classifier_reference();
setState(654);
match(IN);
setState(655);
element_values();
setState(656);
match(RPAREN);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(658);
match(FOR);
setState(660);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(659);
((For_conditionContext) _localctx).LPAREN = match(LPAREN);
}
}
setState(662);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == LPAREN);
setState(664);
match(IDENT);
setState(665);
match(COLON);
setState(666);
unique_component_classifier_reference();
setState(667);
match(IN);
setState(668);
element_values();
setState(670);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(669);
match(RPAREN);
}
}
setState(672);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
notifyDuplicateSymbol(((For_conditionContext) _localctx).LPAREN(),
((For_conditionContext) _localctx).LPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Forall_statementContext extends ParserRuleContext {
public ForOrForAllStatement result;
public Token LCURLY;
public Token RCURLY;
public Behavior_actionsContext behavior_actions() {
return getRuleContext(Behavior_actionsContext.class, 0);
}
public TerminalNode RCURLY(int i) {
return getToken(AadlBaParser.RCURLY, i);
}
public List<TerminalNode> RCURLY() {
return getTokens(AadlBaParser.RCURLY);
}
public List<TerminalNode> LCURLY() {
return getTokens(AadlBaParser.LCURLY);
}
public Forall_conditionContext forall_condition() {
return getRuleContext(Forall_conditionContext.class, 0);
}
public TerminalNode LCURLY(int i) {
return getToken(AadlBaParser.LCURLY, i);
}
public Forall_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_forall_statement;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterForall_statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitForall_statement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitForall_statement(this);
else
return visitor.visitChildren(this);
}
}
public final Forall_statementContext forall_statement() throws RecognitionException {
Forall_statementContext _localctx = new Forall_statementContext(_ctx, getState());
enterRule(_localctx, 84, RULE_forall_statement);
try {
int _alt;
setState(697);
switch (getInterpreter().adaptivePredict(_input, 80, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(678);
forall_condition();
setState(679);
match(LCURLY);
setState(680);
behavior_actions();
setState(681);
match(RCURLY);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(683);
forall_condition();
setState(685);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(684);
((Forall_statementContext) _localctx).LCURLY = match(LCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(687);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 78, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(689);
behavior_actions();
setState(691);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(690);
((Forall_statementContext) _localctx).RCURLY = match(RCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(693);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 79, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
notifyDuplicateSymbol(((Forall_statementContext) _localctx).LCURLY(),
((Forall_statementContext) _localctx).RCURLY(), "{}");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Forall_conditionContext extends ParserRuleContext {
public ForOrForAllStatement result;
public Token LPAREN;
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public TerminalNode COLON() {
return getToken(AadlBaParser.COLON, 0);
}
public Element_valuesContext element_values() {
return getRuleContext(Element_valuesContext.class, 0);
}
public TerminalNode FORALL() {
return getToken(AadlBaParser.FORALL, 0);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public TerminalNode IN() {
return getToken(AadlBaParser.IN, 0);
}
public Unique_component_classifier_referenceContext unique_component_classifier_reference() {
return getRuleContext(Unique_component_classifier_referenceContext.class, 0);
}
public Forall_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_forall_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterForall_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitForall_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitForall_condition(this);
else
return visitor.visitChildren(this);
}
}
public final Forall_conditionContext forall_condition() throws RecognitionException {
Forall_conditionContext _localctx = new Forall_conditionContext(_ctx, getState());
enterRule(_localctx, 86, RULE_forall_condition);
int _la;
try {
setState(726);
switch (getInterpreter().adaptivePredict(_input, 83, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(699);
match(FORALL);
setState(700);
match(LPAREN);
setState(701);
match(IDENT);
setState(702);
match(COLON);
setState(703);
unique_component_classifier_reference();
setState(704);
match(IN);
setState(705);
element_values();
setState(706);
match(RPAREN);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(708);
match(FORALL);
setState(710);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(709);
((Forall_conditionContext) _localctx).LPAREN = match(LPAREN);
}
}
setState(712);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == LPAREN);
setState(714);
match(IDENT);
setState(715);
match(COLON);
setState(716);
unique_component_classifier_reference();
setState(717);
match(IN);
setState(718);
element_values();
setState(720);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(719);
match(RPAREN);
}
}
setState(722);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
notifyDuplicateSymbol(((Forall_conditionContext) _localctx).LPAREN(),
((Forall_conditionContext) _localctx).LPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class While_statementContext extends ParserRuleContext {
public WhileOrDoUntilStatement result;
public Token LCURLY;
public Token RCURLY;
public Behavior_actionsContext behavior_actions() {
return getRuleContext(Behavior_actionsContext.class, 0);
}
public TerminalNode RCURLY(int i) {
return getToken(AadlBaParser.RCURLY, i);
}
public List<TerminalNode> RCURLY() {
return getTokens(AadlBaParser.RCURLY);
}
public While_conditionContext while_condition() {
return getRuleContext(While_conditionContext.class, 0);
}
public List<TerminalNode> LCURLY() {
return getTokens(AadlBaParser.LCURLY);
}
public TerminalNode LCURLY(int i) {
return getToken(AadlBaParser.LCURLY, i);
}
public While_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_while_statement;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterWhile_statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitWhile_statement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitWhile_statement(this);
else
return visitor.visitChildren(this);
}
}
public final While_statementContext while_statement() throws RecognitionException {
While_statementContext _localctx = new While_statementContext(_ctx, getState());
enterRule(_localctx, 88, RULE_while_statement);
try {
int _alt;
setState(747);
switch (getInterpreter().adaptivePredict(_input, 86, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(728);
while_condition();
setState(729);
match(LCURLY);
setState(730);
behavior_actions();
setState(731);
match(RCURLY);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(733);
while_condition();
setState(735);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(734);
((While_statementContext) _localctx).LCURLY = match(LCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(737);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 84, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(739);
behavior_actions();
setState(741);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(740);
((While_statementContext) _localctx).RCURLY = match(RCURLY);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(743);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 85, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
notifyDuplicateSymbol(((While_statementContext) _localctx).LCURLY(),
((While_statementContext) _localctx).RCURLY(), "{}");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class While_conditionContext extends ParserRuleContext {
public WhileOrDoUntilStatement result;
public Token LPAREN;
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode WHILE() {
return getToken(AadlBaParser.WHILE, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public While_conditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_while_condition;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterWhile_condition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitWhile_condition(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitWhile_condition(this);
else
return visitor.visitChildren(this);
}
}
public final While_conditionContext while_condition() throws RecognitionException {
While_conditionContext _localctx = new While_conditionContext(_ctx, getState());
enterRule(_localctx, 90, RULE_while_condition);
int _la;
try {
int _alt;
setState(768);
switch (getInterpreter().adaptivePredict(_input, 89, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(749);
match(WHILE);
setState(750);
match(LPAREN);
setState(751);
value_expression();
setState(752);
match(RPAREN);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(754);
match(WHILE);
setState(756);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(755);
((While_conditionContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(758);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 87, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(760);
value_expression();
setState(762);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(761);
match(RPAREN);
}
}
setState(764);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
notifyDuplicateSymbol(((While_conditionContext) _localctx).LPAREN(),
((While_conditionContext) _localctx).LPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Dountil_statementContext extends ParserRuleContext {
public WhileOrDoUntilStatement result;
public Token LPAREN;
public TerminalNode DO() {
return getToken(AadlBaParser.DO, 0);
}
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public Behavior_actionsContext behavior_actions() {
return getRuleContext(Behavior_actionsContext.class, 0);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public TerminalNode UNTIL() {
return getToken(AadlBaParser.UNTIL, 0);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public Dountil_statementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_dountil_statement;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterDountil_statement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitDountil_statement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitDountil_statement(this);
else
return visitor.visitChildren(this);
}
}
public final Dountil_statementContext dountil_statement() throws RecognitionException {
Dountil_statementContext _localctx = new Dountil_statementContext(_ctx, getState());
enterRule(_localctx, 92, RULE_dountil_statement);
int _la;
try {
int _alt;
setState(793);
switch (getInterpreter().adaptivePredict(_input, 92, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(770);
match(DO);
setState(771);
behavior_actions();
setState(772);
match(UNTIL);
setState(773);
match(LPAREN);
setState(774);
value_expression();
setState(775);
match(RPAREN);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(777);
match(DO);
setState(778);
behavior_actions();
setState(779);
match(UNTIL);
setState(781);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(780);
((Dountil_statementContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(783);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 90, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(785);
value_expression();
setState(787);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(786);
match(RPAREN);
}
}
setState(789);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
notifyDuplicateSymbol(((Dountil_statementContext) _localctx).LPAREN(),
((Dountil_statementContext) _localctx).LPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Element_valuesContext extends ParserRuleContext {
public ElementValues result;
public ReferenceContext reference() {
return getRuleContext(ReferenceContext.class, 0);
}
public Integer_rangeContext integer_range() {
return getRuleContext(Integer_rangeContext.class, 0);
}
public Element_valuesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_element_values;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterElement_values(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitElement_values(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitElement_values(this);
else
return visitor.visitChildren(this);
}
}
public final Element_valuesContext element_values() throws RecognitionException {
Element_valuesContext _localctx = new Element_valuesContext(_ctx, getState());
enterRule(_localctx, 94, RULE_element_values);
try {
setState(797);
switch (getInterpreter().adaptivePredict(_input, 93, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(795);
integer_range();
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(796);
reference();
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Basic_actionContext extends ParserRuleContext {
public BasicAction result;
public Timed_actionContext timed_action() {
return getRuleContext(Timed_actionContext.class, 0);
}
public Communication_actionContext communication_action() {
return getRuleContext(Communication_actionContext.class, 0);
}
public Assignment_actionContext assignment_action() {
return getRuleContext(Assignment_actionContext.class, 0);
}
public Basic_actionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_basic_action;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBasic_action(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBasic_action(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBasic_action(this);
else
return visitor.visitChildren(this);
}
}
public final Basic_actionContext basic_action() throws RecognitionException {
Basic_actionContext _localctx = new Basic_actionContext(_ctx, getState());
enterRule(_localctx, 96, RULE_basic_action);
try {
setState(802);
switch (getInterpreter().adaptivePredict(_input, 94, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(799);
assignment_action();
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(800);
communication_action();
}
break;
case 3:
enterOuterAlt(_localctx, 3); {
setState(801);
timed_action();
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Assignment_actionContext extends ParserRuleContext {
public AssignmentAction result;
public Token EQUAL;
public TargetContext target() {
return getRuleContext(TargetContext.class, 0);
}
public TerminalNode ASSIGN() {
return getToken(AadlBaParser.ASSIGN, 0);
}
public TerminalNode EQUAL() {
return getToken(AadlBaParser.EQUAL, 0);
}
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public TerminalNode ANY() {
return getToken(AadlBaParser.ANY, 0);
}
public Assignment_actionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_assignment_action;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterAssignment_action(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitAssignment_action(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitAssignment_action(this);
else
return visitor.visitChildren(this);
}
}
public final Assignment_actionContext assignment_action() throws RecognitionException {
Assignment_actionContext _localctx = new Assignment_actionContext(_ctx, getState());
enterRule(_localctx, 98, RULE_assignment_action);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(804);
target();
setState(805);
_la = _input.LA(1);
if (!(_la == ASSIGN || _la == EQUAL)) {
_errHandler.recoverInline(this);
}
consume();
setState(808);
switch (_input.LA(1)) {
case ABS:
case FALSE:
case NOT:
case TRUE:
case LPAREN:
case PLUS:
case MINUS:
case HASH:
case IDENT:
case STRING_LITERAL:
case REAL_LIT:
case INTEGER_LIT: {
setState(806);
value_expression();
}
break;
case ANY: {
setState(807);
match(ANY);
}
break;
default:
throw new NoViableAltException(this);
}
if (((Assignment_actionContext) _localctx).EQUAL() != null) {
notifyErrorListeners(((Assignment_actionContext) _localctx).EQUAL().getSymbol(),
"mismatched input \'" + ((Assignment_actionContext) _localctx).EQUAL().getText()
+ "\' expecting " + AadlBaLexer.tokenNames[AadlBaLexer.ASSIGN],
null);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class TargetContext extends ParserRuleContext {
public Target result;
public ReferenceContext reference() {
return getRuleContext(ReferenceContext.class, 0);
}
public TargetContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_target;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterTarget(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitTarget(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitTarget(this);
else
return visitor.visitChildren(this);
}
}
public final TargetContext target() throws RecognitionException {
TargetContext _localctx = new TargetContext(_ctx, getState());
enterRule(_localctx, 100, RULE_target);
try {
enterOuterAlt(_localctx, 1);
{
setState(812);
reference();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Qualified_named_elementContext extends ParserRuleContext {
public QualifiedNamedElement result;
public String namespaceId;
public String nameId;
public Token id1;
public Token id2;
public Token id3;
public TerminalNode DOUBLECOLON(int i) {
return getToken(AadlBaParser.DOUBLECOLON, i);
}
public TerminalNode DOT() {
return getToken(AadlBaParser.DOT, 0);
}
public TerminalNode IDENT(int i) {
return getToken(AadlBaParser.IDENT, i);
}
public List<TerminalNode> DOUBLECOLON() {
return getTokens(AadlBaParser.DOUBLECOLON);
}
public List<TerminalNode> IDENT() {
return getTokens(AadlBaParser.IDENT);
}
public Qualified_named_elementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_qualified_named_element;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterQualified_named_element(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitQualified_named_element(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitQualified_named_element(this);
else
return visitor.visitChildren(this);
}
}
public final Qualified_named_elementContext qualified_named_element() throws RecognitionException {
Qualified_named_elementContext _localctx = new Qualified_named_elementContext(_ctx, getState());
enterRule(_localctx, 102, RULE_qualified_named_element);
((Qualified_named_elementContext) _localctx).namespaceId = "";
((Qualified_named_elementContext) _localctx).nameId = "";
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(817);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(814);
((Qualified_named_elementContext) _localctx).id1 = match(IDENT);
setState(815);
match(DOUBLECOLON);
((Qualified_named_elementContext) _localctx).namespaceId = _localctx.namespaceId
+ (_localctx.namespaceId.length() == 0 ? "" : "::")
+ (((Qualified_named_elementContext) _localctx).id1 != null
? ((Qualified_named_elementContext) _localctx).id1.getText()
: null);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(819);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 96, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(821);
((Qualified_named_elementContext) _localctx).id2 = match(IDENT);
((Qualified_named_elementContext) _localctx).nameId = (((Qualified_named_elementContext) _localctx).id2 != null
? ((Qualified_named_elementContext) _localctx).id2.getText()
: null);
setState(826);
_la = _input.LA(1);
if (_la == DOT) {
{
setState(823);
match(DOT);
setState(824);
((Qualified_named_elementContext) _localctx).id3 = match(IDENT);
((Qualified_named_elementContext) _localctx).nameId = _localctx.nameId + "."
+ (((Qualified_named_elementContext) _localctx).id3 != null
? ((Qualified_named_elementContext) _localctx).id3.getText()
: null);
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Communication_actionContext extends ParserRuleContext {
public CommAction result;
public Token LPAREN;
public Token RPAREN;
public Qualified_named_elementContext qualified_named_element() {
return getRuleContext(Qualified_named_elementContext.class, 0);
}
public ReferenceContext reference() {
return getRuleContext(ReferenceContext.class, 0);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode STAR() {
return getToken(AadlBaParser.STAR, 0);
}
public TerminalNode EXCLLESS() {
return getToken(AadlBaParser.EXCLLESS, 0);
}
public TargetContext target() {
return getRuleContext(TargetContext.class, 0);
}
public TerminalNode INTERROG() {
return getToken(AadlBaParser.INTERROG, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public TerminalNode EXCLGREATER() {
return getToken(AadlBaParser.EXCLGREATER, 0);
}
public Subprogram_parameter_listContext subprogram_parameter_list() {
return getRuleContext(Subprogram_parameter_listContext.class, 0);
}
public TerminalNode GGREATER() {
return getToken(AadlBaParser.GGREATER, 0);
}
public TerminalNode EXCLAM() {
return getToken(AadlBaParser.EXCLAM, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public Communication_actionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_communication_action;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterCommunication_action(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitCommunication_action(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitCommunication_action(this);
else
return visitor.visitChildren(this);
}
}
public final Communication_actionContext communication_action() throws RecognitionException {
Communication_actionContext _localctx = new Communication_actionContext(_ctx, getState());
enterRule(_localctx, 104, RULE_communication_action);
int _la;
try {
int _alt;
setState(905);
switch (getInterpreter().adaptivePredict(_input, 111, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(828);
qualified_named_element();
setState(829);
match(EXCLAM);
setState(834);
_la = _input.LA(1);
if (_la == LPAREN) {
{
setState(830);
match(LPAREN);
setState(831);
subprogram_parameter_list();
setState(832);
match(RPAREN);
}
}
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(836);
reference();
setState(884);
switch (getInterpreter().adaptivePredict(_input, 107, _ctx)) {
case 1: {
setState(837);
match(INTERROG);
setState(842);
_la = _input.LA(1);
if (_la == LPAREN) {
{
setState(838);
((Communication_actionContext) _localctx).LPAREN = match(LPAREN);
setState(839);
target();
setState(840);
((Communication_actionContext) _localctx).RPAREN = match(RPAREN);
}
}
}
break;
case 2: {
setState(844);
match(GGREATER);
}
break;
case 3: {
setState(845);
match(EXCLLESS);
}
break;
case 4: {
setState(846);
match(EXCLGREATER);
}
break;
case 5: {
setState(847);
match(EXCLAM);
setState(852);
_la = _input.LA(1);
if (_la == LPAREN) {
{
setState(848);
((Communication_actionContext) _localctx).LPAREN = match(LPAREN);
setState(849);
subprogram_parameter_list();
setState(850);
((Communication_actionContext) _localctx).RPAREN = match(RPAREN);
}
}
}
break;
case 6: {
setState(854);
match(INTERROG);
setState(866);
_la = _input.LA(1);
if (_la == LPAREN) {
{
setState(856);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(855);
((Communication_actionContext) _localctx).LPAREN = match(LPAREN);
}
}
setState(858);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == LPAREN);
setState(860);
target();
setState(862);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(861);
((Communication_actionContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(864);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
}
}
notifyDuplicateSymbol(((Communication_actionContext) _localctx).LPAREN(),
((Communication_actionContext) _localctx).RPAREN(), "()");
}
break;
case 7: {
setState(869);
match(EXCLAM);
setState(881);
_la = _input.LA(1);
if (_la == LPAREN) {
{
setState(871);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(870);
((Communication_actionContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(873);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 104, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(875);
subprogram_parameter_list();
setState(877);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(876);
((Communication_actionContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(879);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
}
}
notifyDuplicateSymbol(((Communication_actionContext) _localctx).LPAREN(),
((Communication_actionContext) _localctx).RPAREN(), "()");
}
break;
}
}
break;
case 3:
enterOuterAlt(_localctx, 3); {
setState(886);
match(STAR);
setState(887);
_la = _input.LA(1);
if (!(_la == EXCLLESS || _la == EXCLGREATER)) {
_errHandler.recoverInline(this);
}
consume();
}
break;
case 4:
enterOuterAlt(_localctx, 4); {
setState(888);
qualified_named_element();
setState(889);
match(EXCLAM);
setState(901);
_la = _input.LA(1);
if (_la == LPAREN) {
{
setState(891);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(890);
((Communication_actionContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(893);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 108, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(895);
subprogram_parameter_list();
setState(897);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(896);
((Communication_actionContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(899);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
}
}
notifyDuplicateSymbol(((Communication_actionContext) _localctx).LPAREN(),
((Communication_actionContext) _localctx).RPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Timed_actionContext extends ParserRuleContext {
public TimedAction result;
public Token LPAREN;
public Token RPAREN;
public In_bindingContext in_binding() {
return getRuleContext(In_bindingContext.class, 0);
}
public TerminalNode DOTDOT() {
return getToken(AadlBaParser.DOTDOT, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public List<Behavior_timeContext> behavior_time() {
return getRuleContexts(Behavior_timeContext.class);
}
public TerminalNode COMPUTATION() {
return getToken(AadlBaParser.COMPUTATION, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public Behavior_timeContext behavior_time(int i) {
return getRuleContext(Behavior_timeContext.class, i);
}
public Timed_actionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_timed_action;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterTimed_action(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitTimed_action(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitTimed_action(this);
else
return visitor.visitChildren(this);
}
}
public final Timed_actionContext timed_action() throws RecognitionException {
Timed_actionContext _localctx = new Timed_actionContext(_ctx, getState());
enterRule(_localctx, 106, RULE_timed_action);
int _la;
try {
setState(939);
switch (getInterpreter().adaptivePredict(_input, 118, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(907);
match(COMPUTATION);
setState(908);
match(LPAREN);
setState(909);
behavior_time();
setState(912);
_la = _input.LA(1);
if (_la == DOTDOT) {
{
setState(910);
match(DOTDOT);
setState(911);
behavior_time();
}
}
setState(914);
match(RPAREN);
setState(916);
_la = _input.LA(1);
if (_la == IN) {
{
setState(915);
in_binding(_localctx.result);
}
}
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(918);
match(COMPUTATION);
setState(920);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(919);
((Timed_actionContext) _localctx).LPAREN = match(LPAREN);
}
}
setState(922);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == LPAREN);
setState(924);
behavior_time();
setState(927);
_la = _input.LA(1);
if (_la == DOTDOT) {
{
setState(925);
match(DOTDOT);
setState(926);
behavior_time();
}
}
setState(930);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(929);
((Timed_actionContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(932);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
setState(935);
_la = _input.LA(1);
if (_la == IN) {
{
setState(934);
in_binding(_localctx.result);
}
}
notifyDuplicateSymbol(((Timed_actionContext) _localctx).LPAREN(),
((Timed_actionContext) _localctx).RPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class In_bindingContext extends ParserRuleContext {
public TimedAction ta;
public Token LPAREN;
public Token RPAREN;
public Processor_parameter_listContext processor_parameter_list() {
return getRuleContext(Processor_parameter_listContext.class, 0);
}
public TerminalNode BINDING() {
return getToken(AadlBaParser.BINDING, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public TerminalNode IN() {
return getToken(AadlBaParser.IN, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public In_bindingContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
public In_bindingContext(ParserRuleContext parent, int invokingState, TimedAction ta) {
super(parent, invokingState);
this.ta = ta;
}
@Override
public int getRuleIndex() {
return RULE_in_binding;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterIn_binding(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitIn_binding(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitIn_binding(this);
else
return visitor.visitChildren(this);
}
}
public final In_bindingContext in_binding(TimedAction ta) throws RecognitionException {
In_bindingContext _localctx = new In_bindingContext(_ctx, getState(), ta);
enterRule(_localctx, 108, RULE_in_binding);
int _la;
try {
setState(962);
switch (getInterpreter().adaptivePredict(_input, 121, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(941);
match(IN);
setState(942);
match(BINDING);
setState(943);
match(LPAREN);
setState(944);
processor_parameter_list();
setState(945);
match(RPAREN);
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(947);
match(IN);
setState(948);
match(BINDING);
setState(950);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(949);
((In_bindingContext) _localctx).LPAREN = match(LPAREN);
}
}
setState(952);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == LPAREN);
setState(954);
processor_parameter_list();
setState(956);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(955);
((In_bindingContext) _localctx).RPAREN = match(RPAREN);
}
}
setState(958);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == RPAREN);
notifyDuplicateSymbol(((In_bindingContext) _localctx).LPAREN(),
((In_bindingContext) _localctx).RPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Processor_parameter_listContext extends ParserRuleContext {
public EList<ProcessorClassifier> result;
public int count;
public Token separator;
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public Unique_component_classifier_referenceContext unique_component_classifier_reference(int i) {
return getRuleContext(Unique_component_classifier_referenceContext.class, i);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public List<Unique_component_classifier_referenceContext> unique_component_classifier_reference() {
return getRuleContexts(Unique_component_classifier_referenceContext.class);
}
public Processor_parameter_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_processor_parameter_list;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterProcessor_parameter_list(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitProcessor_parameter_list(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitProcessor_parameter_list(this);
else
return visitor.visitChildren(this);
}
}
public final Processor_parameter_listContext processor_parameter_list() throws RecognitionException {
Processor_parameter_listContext _localctx = new Processor_parameter_listContext(_ctx, getState());
enterRule(_localctx, 110, RULE_processor_parameter_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(964);
unique_component_classifier_reference();
((Processor_parameter_listContext) _localctx).count = 0;
setState(974);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == COMMA || _la == IDENT) {
{
{
setState(967);
_la = _input.LA(1);
if (_la == COMMA) {
{
setState(966);
((Processor_parameter_listContext) _localctx).separator = match(COMMA);
}
}
setState(969);
unique_component_classifier_reference();
_localctx.count++;
if (((Processor_parameter_listContext) _localctx).separator == null) {
try {
notifyErrorListeners(
_localctx.unique_component_classifier_reference(_localctx.count - 1)
.getStop(),
"missing processor parameter separator \',\'", null);
} catch (Exception e) {
notifyErrorListeners("missing processor parameter separator \',\'");
}
} else {
_localctx.separator = null;
}
}
}
setState(976);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Subprogram_parameter_listContext extends ParserRuleContext {
public EList<ParameterLabel> result;
public int count;
public Token separator;
public Parameter_labelContext parameter_label(int i) {
return getRuleContext(Parameter_labelContext.class, i);
}
public List<TerminalNode> COMMA() {
return getTokens(AadlBaParser.COMMA);
}
public List<Parameter_labelContext> parameter_label() {
return getRuleContexts(Parameter_labelContext.class);
}
public TerminalNode COMMA(int i) {
return getToken(AadlBaParser.COMMA, i);
}
public Subprogram_parameter_listContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_subprogram_parameter_list;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterSubprogram_parameter_list(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitSubprogram_parameter_list(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitSubprogram_parameter_list(this);
else
return visitor.visitChildren(this);
}
}
public final Subprogram_parameter_listContext subprogram_parameter_list() throws RecognitionException {
Subprogram_parameter_listContext _localctx = new Subprogram_parameter_listContext(_ctx, getState());
enterRule(_localctx, 112, RULE_subprogram_parameter_list);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(977);
parameter_label();
((Subprogram_parameter_listContext) _localctx).count = 0;
setState(987);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << FALSE) | (1L << NOT) | (1L << TRUE)
| (1L << COMMA) | (1L << LPAREN))) != 0)
|| ((((_la - 68)) & ~0x3f) == 0
&& ((1L << (_la - 68)) & ((1L << (PLUS - 68)) | (1L << (MINUS - 68))
| (1L << (HASH - 68)) | (1L << (IDENT - 68)) | (1L << (STRING_LITERAL - 68))
| (1L << (REAL_LIT - 68)) | (1L << (INTEGER_LIT - 68)))) != 0)) {
{
{
setState(980);
_la = _input.LA(1);
if (_la == COMMA) {
{
setState(979);
((Subprogram_parameter_listContext) _localctx).separator = match(COMMA);
}
}
setState(982);
parameter_label();
_localctx.count++;
if (((Subprogram_parameter_listContext) _localctx).separator == null) {
try {
notifyErrorListeners(_localctx.parameter_label(_localctx.count - 1).getStop(),
"missing subprogram parameter separator \',\'", null);
} catch (Exception e) {
notifyErrorListeners("missing subprogram parameter separator \',\'");
}
} else {
_localctx.separator = null;
}
}
}
setState(989);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Parameter_labelContext extends ParserRuleContext {
public ParameterLabel result;
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public Parameter_labelContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_parameter_label;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterParameter_label(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitParameter_label(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitParameter_label(this);
else
return visitor.visitChildren(this);
}
}
public final Parameter_labelContext parameter_label() throws RecognitionException {
Parameter_labelContext _localctx = new Parameter_labelContext(_ctx, getState());
enterRule(_localctx, 114, RULE_parameter_label);
try {
enterOuterAlt(_localctx, 1);
{
setState(990);
value_expression();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class ReferenceContext extends ParserRuleContext {
public Reference result;
public List<TerminalNode> DOT() {
return getTokens(AadlBaParser.DOT);
}
public List<Array_identifierContext> array_identifier() {
return getRuleContexts(Array_identifierContext.class);
}
public Array_identifierContext array_identifier(int i) {
return getRuleContext(Array_identifierContext.class, i);
}
public TerminalNode DOT(int i) {
return getToken(AadlBaParser.DOT, i);
}
public ReferenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_reference;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterReference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitReference(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitReference(this);
else
return visitor.visitChildren(this);
}
}
public final ReferenceContext reference() throws RecognitionException {
ReferenceContext _localctx = new ReferenceContext(_ctx, getState());
enterRule(_localctx, 116, RULE_reference);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(992);
array_identifier();
setState(997);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == DOT) {
{
{
setState(993);
match(DOT);
setState(994);
array_identifier();
}
}
setState(999);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Array_identifierContext extends ParserRuleContext {
public ArrayableIdentifier result;
public TerminalNode RBRACK(int i) {
return getToken(AadlBaParser.RBRACK, i);
}
public List<Integer_valueContext> integer_value() {
return getRuleContexts(Integer_valueContext.class);
}
public TerminalNode LBRACK(int i) {
return getToken(AadlBaParser.LBRACK, i);
}
public List<TerminalNode> RBRACK() {
return getTokens(AadlBaParser.RBRACK);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public List<TerminalNode> LBRACK() {
return getTokens(AadlBaParser.LBRACK);
}
public Integer_valueContext integer_value(int i) {
return getRuleContext(Integer_valueContext.class, i);
}
public Array_identifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_array_identifier;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterArray_identifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitArray_identifier(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitArray_identifier(this);
else
return visitor.visitChildren(this);
}
}
public final Array_identifierContext array_identifier() throws RecognitionException {
Array_identifierContext _localctx = new Array_identifierContext(_ctx, getState());
enterRule(_localctx, 118, RULE_array_identifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1000);
match(IDENT);
setState(1007);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == LBRACK) {
{
{
setState(1001);
match(LBRACK);
setState(1002);
integer_value();
setState(1003);
match(RBRACK);
}
}
setState(1009);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Value_constantContext extends ParserRuleContext {
public ValueConstant result;
public Numeric_literalContext numeric_literal() {
return getRuleContext(Numeric_literalContext.class, 0);
}
public Property_referenceContext property_reference() {
return getRuleContext(Property_referenceContext.class, 0);
}
public String_literalContext string_literal() {
return getRuleContext(String_literalContext.class, 0);
}
public Boolean_literalContext boolean_literal() {
return getRuleContext(Boolean_literalContext.class, 0);
}
public Value_constantContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_value_constant;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterValue_constant(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitValue_constant(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitValue_constant(this);
else
return visitor.visitChildren(this);
}
}
public final Value_constantContext value_constant() throws RecognitionException {
Value_constantContext _localctx = new Value_constantContext(_ctx, getState());
enterRule(_localctx, 120, RULE_value_constant);
try {
setState(1014);
switch (_input.LA(1)) {
case REAL_LIT:
case INTEGER_LIT:
enterOuterAlt(_localctx, 1); {
setState(1010);
numeric_literal();
}
break;
case HASH:
case IDENT:
enterOuterAlt(_localctx, 2); {
setState(1011);
property_reference();
}
break;
case FALSE:
case TRUE:
enterOuterAlt(_localctx, 3); {
setState(1012);
boolean_literal();
}
break;
case STRING_LITERAL:
enterOuterAlt(_localctx, 4); {
setState(1013);
string_literal();
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Value_constant_or_variableContext extends ParserRuleContext {
public Value result;
public Token LPAREN;
public Token RPAREN;
public Value_expressionContext value_expression() {
return getRuleContext(Value_expressionContext.class, 0);
}
public TerminalNode RPAREN(int i) {
return getToken(AadlBaParser.RPAREN, i);
}
public List<TerminalNode> LPAREN() {
return getTokens(AadlBaParser.LPAREN);
}
public Value_constantContext value_constant() {
return getRuleContext(Value_constantContext.class, 0);
}
public List<TerminalNode> RPAREN() {
return getTokens(AadlBaParser.RPAREN);
}
public Value_variableContext value_variable() {
return getRuleContext(Value_variableContext.class, 0);
}
public TerminalNode LPAREN(int i) {
return getToken(AadlBaParser.LPAREN, i);
}
public Value_constant_or_variableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_value_constant_or_variable;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterValue_constant_or_variable(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitValue_constant_or_variable(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitValue_constant_or_variable(this);
else
return visitor.visitChildren(this);
}
}
public final Value_constant_or_variableContext value_constant_or_variable() throws RecognitionException {
Value_constant_or_variableContext _localctx = new Value_constant_or_variableContext(_ctx, getState());
enterRule(_localctx, 122, RULE_value_constant_or_variable);
try {
int _alt;
setState(1035);
switch (getInterpreter().adaptivePredict(_input, 131, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(1016);
value_constant();
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(1017);
value_variable();
}
break;
case 3:
enterOuterAlt(_localctx, 3); {
setState(1018);
match(LPAREN);
setState(1019);
value_expression();
setState(1020);
match(RPAREN);
}
break;
case 4:
enterOuterAlt(_localctx, 4); {
setState(1023);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(1022);
((Value_constant_or_variableContext) _localctx).LPAREN = match(LPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1025);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 129, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
setState(1027);
value_expression();
setState(1029);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1: {
{
setState(1028);
((Value_constant_or_variableContext) _localctx).RPAREN = match(RPAREN);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1031);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 130, _ctx);
} while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER);
notifyDuplicateSymbol(((Value_constant_or_variableContext) _localctx).LPAREN(),
((Value_constant_or_variableContext) _localctx).RPAREN(), "()");
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Value_variableContext extends ParserRuleContext {
public ValueVariable result;
public TerminalNode COUNT() {
return getToken(AadlBaParser.COUNT, 0);
}
public TerminalNode FRESH() {
return getToken(AadlBaParser.FRESH, 0);
}
public TerminalNode INTERROG() {
return getToken(AadlBaParser.INTERROG, 0);
}
public ReferenceContext reference() {
return getRuleContext(ReferenceContext.class, 0);
}
public TerminalNode TICK() {
return getToken(AadlBaParser.TICK, 0);
}
public Value_variableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_value_variable;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterValue_variable(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitValue_variable(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitValue_variable(this);
else
return visitor.visitChildren(this);
}
}
public final Value_variableContext value_variable() throws RecognitionException {
Value_variableContext _localctx = new Value_variableContext(_ctx, getState());
enterRule(_localctx, 124, RULE_value_variable);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1037);
reference();
setState(1041);
switch (_input.LA(1)) {
case INTERROG: {
setState(1038);
match(INTERROG);
}
break;
case TICK: {
setState(1039);
match(TICK);
setState(1040);
_la = _input.LA(1);
if (!(_la == COUNT || _la == FRESH)) {
_errHandler.recoverInline(this);
}
consume();
}
break;
case ABS:
case AND:
case COMPUTATION:
case DO:
case ELSE:
case ELSIF:
case END:
case FALSE:
case FOR:
case FORALL:
case IF:
case MOD:
case NOT:
case OR:
case REM:
case TRUE:
case UNTIL:
case WHILE:
case XOR:
case RBRACK:
case COMMA:
case RTRANS:
case LPAREN:
case RPAREN:
case CONCAT:
case LCURLY:
case RCURLY:
case EQUAL:
case NOTEQUAL:
case LESSTHAN:
case LESSOREQUAL:
case GREATERTHAN:
case GREATEROREQUAL:
case PLUS:
case MINUS:
case STAR:
case DIVIDE:
case STARSTAR:
case DOTDOT:
case SEMICOLON:
case HASH:
case ERR_EQUALEQUAL:
case ERR_END:
case ERR_ELSIF:
case IDENT:
case STRING_LITERAL:
case REAL_LIT:
case INTEGER_LIT:
break;
default:
throw new NoViableAltException(this);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Value_expressionContext extends ParserRuleContext {
public ValueExpression result;
public List<RelationContext> relation() {
return getRuleContexts(RelationContext.class);
}
public List<Logical_operatorContext> logical_operator() {
return getRuleContexts(Logical_operatorContext.class);
}
public RelationContext relation(int i) {
return getRuleContext(RelationContext.class, i);
}
public Logical_operatorContext logical_operator(int i) {
return getRuleContext(Logical_operatorContext.class, i);
}
public Value_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_value_expression;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterValue_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitValue_expression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitValue_expression(this);
else
return visitor.visitChildren(this);
}
}
public final Value_expressionContext value_expression() throws RecognitionException {
Value_expressionContext _localctx = new Value_expressionContext(_ctx, getState());
enterRule(_localctx, 126, RULE_value_expression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1043);
relation();
setState(1049);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << AND) | (1L << OR) | (1L << XOR))) != 0)) {
{
{
setState(1044);
logical_operator();
setState(1045);
relation();
}
}
setState(1051);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class RelationContext extends ParserRuleContext {
public Relation result;
public Relational_operatorContext relational_operator() {
return getRuleContext(Relational_operatorContext.class, 0);
}
public List<Simple_expressionContext> simple_expression() {
return getRuleContexts(Simple_expressionContext.class);
}
public Simple_expressionContext simple_expression(int i) {
return getRuleContext(Simple_expressionContext.class, i);
}
public RelationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_relation;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterRelation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitRelation(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitRelation(this);
else
return visitor.visitChildren(this);
}
}
public final RelationContext relation() throws RecognitionException {
RelationContext _localctx = new RelationContext(_ctx, getState());
enterRule(_localctx, 128, RULE_relation);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1052);
simple_expression();
setState(1056);
_la = _input.LA(1);
if (((((_la - 62)) & ~0x3f) == 0
&& ((1L << (_la - 62)) & ((1L << (EQUAL - 62)) | (1L << (NOTEQUAL - 62))
| (1L << (LESSTHAN - 62)) | (1L << (LESSOREQUAL - 62)) | (1L << (GREATERTHAN - 62))
| (1L << (GREATEROREQUAL - 62)) | (1L << (ERR_EQUALEQUAL - 62)))) != 0)) {
{
setState(1053);
relational_operator();
setState(1054);
simple_expression();
}
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Simple_expressionContext extends ParserRuleContext {
public SimpleExpression result;
public Binary_adding_operatorContext binary_adding_operator(int i) {
return getRuleContext(Binary_adding_operatorContext.class, i);
}
public List<TermContext> term() {
return getRuleContexts(TermContext.class);
}
public TermContext term(int i) {
return getRuleContext(TermContext.class, i);
}
public List<Binary_adding_operatorContext> binary_adding_operator() {
return getRuleContexts(Binary_adding_operatorContext.class);
}
public Unary_adding_operatorContext unary_adding_operator() {
return getRuleContext(Unary_adding_operatorContext.class, 0);
}
public Simple_expressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_simple_expression;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterSimple_expression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitSimple_expression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitSimple_expression(this);
else
return visitor.visitChildren(this);
}
}
public final Simple_expressionContext simple_expression() throws RecognitionException {
Simple_expressionContext _localctx = new Simple_expressionContext(_ctx, getState());
enterRule(_localctx, 130, RULE_simple_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1059);
_la = _input.LA(1);
if (_la == PLUS || _la == MINUS) {
{
setState(1058);
unary_adding_operator();
}
}
setState(1061);
term();
setState(1067);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 136, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(1062);
binary_adding_operator();
setState(1063);
term();
}
}
}
setState(1069);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 136, _ctx);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class TermContext extends ParserRuleContext {
public Term result;
public List<FactorContext> factor() {
return getRuleContexts(FactorContext.class);
}
public FactorContext factor(int i) {
return getRuleContext(FactorContext.class, i);
}
public Multiplying_operatorContext multiplying_operator(int i) {
return getRuleContext(Multiplying_operatorContext.class, i);
}
public List<Multiplying_operatorContext> multiplying_operator() {
return getRuleContexts(Multiplying_operatorContext.class);
}
public TermContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_term;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterTerm(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitTerm(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitTerm(this);
else
return visitor.visitChildren(this);
}
}
public final TermContext term() throws RecognitionException {
TermContext _localctx = new TermContext(_ctx, getState());
enterRule(_localctx, 132, RULE_term);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1070);
factor();
setState(1076);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 137, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
{
{
setState(1071);
multiplying_operator();
setState(1072);
factor();
}
}
}
setState(1078);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 137, _ctx);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class FactorContext extends ParserRuleContext {
public Factor result;
public List<Value_constant_or_variableContext> value_constant_or_variable() {
return getRuleContexts(Value_constant_or_variableContext.class);
}
public Binary_numeric_operatorContext binary_numeric_operator() {
return getRuleContext(Binary_numeric_operatorContext.class, 0);
}
public Value_constant_or_variableContext value_constant_or_variable(int i) {
return getRuleContext(Value_constant_or_variableContext.class, i);
}
public Unary_numeric_operatorContext unary_numeric_operator() {
return getRuleContext(Unary_numeric_operatorContext.class, 0);
}
public Unary_boolean_operatorContext unary_boolean_operator() {
return getRuleContext(Unary_boolean_operatorContext.class, 0);
}
public FactorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_factor;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterFactor(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitFactor(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitFactor(this);
else
return visitor.visitChildren(this);
}
}
public final FactorContext factor() throws RecognitionException {
FactorContext _localctx = new FactorContext(_ctx, getState());
enterRule(_localctx, 134, RULE_factor);
int _la;
try {
setState(1091);
switch (_input.LA(1)) {
case FALSE:
case TRUE:
case LPAREN:
case HASH:
case IDENT:
case STRING_LITERAL:
case REAL_LIT:
case INTEGER_LIT:
enterOuterAlt(_localctx, 1); {
setState(1079);
value_constant_or_variable();
setState(1083);
_la = _input.LA(1);
if (_la == STARSTAR) {
{
setState(1080);
binary_numeric_operator();
setState(1081);
value_constant_or_variable();
}
}
}
break;
case ABS:
enterOuterAlt(_localctx, 2); {
setState(1085);
unary_numeric_operator();
setState(1086);
value_constant_or_variable();
}
break;
case NOT:
enterOuterAlt(_localctx, 3); {
setState(1088);
unary_boolean_operator();
setState(1089);
value_constant_or_variable();
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Logical_operatorContext extends ParserRuleContext {
public LogicalOperator result;
public TerminalNode XOR() {
return getToken(AadlBaParser.XOR, 0);
}
public TerminalNode AND() {
return getToken(AadlBaParser.AND, 0);
}
public TerminalNode OR() {
return getToken(AadlBaParser.OR, 0);
}
public Logical_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_logical_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterLogical_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitLogical_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitLogical_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Logical_operatorContext logical_operator() throws RecognitionException {
Logical_operatorContext _localctx = new Logical_operatorContext(_ctx, getState());
enterRule(_localctx, 136, RULE_logical_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1093);
_la = _input.LA(1);
if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << AND) | (1L << OR) | (1L << XOR))) != 0))) {
_errHandler.recoverInline(this);
}
consume();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Relational_operatorContext extends ParserRuleContext {
public RelationalOperator result;
public Token ERR_EQUALEQUAL;
public TerminalNode EQUAL() {
return getToken(AadlBaParser.EQUAL, 0);
}
public TerminalNode GREATERTHAN() {
return getToken(AadlBaParser.GREATERTHAN, 0);
}
public TerminalNode ERR_EQUALEQUAL() {
return getToken(AadlBaParser.ERR_EQUALEQUAL, 0);
}
public TerminalNode LESSTHAN() {
return getToken(AadlBaParser.LESSTHAN, 0);
}
public TerminalNode LESSOREQUAL() {
return getToken(AadlBaParser.LESSOREQUAL, 0);
}
public TerminalNode NOTEQUAL() {
return getToken(AadlBaParser.NOTEQUAL, 0);
}
public TerminalNode GREATEROREQUAL() {
return getToken(AadlBaParser.GREATEROREQUAL, 0);
}
public Relational_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_relational_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterRelational_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitRelational_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitRelational_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Relational_operatorContext relational_operator() throws RecognitionException {
Relational_operatorContext _localctx = new Relational_operatorContext(_ctx, getState());
enterRule(_localctx, 138, RULE_relational_operator);
try {
setState(1103);
switch (_input.LA(1)) {
case EQUAL:
enterOuterAlt(_localctx, 1); {
setState(1095);
match(EQUAL);
}
break;
case NOTEQUAL:
enterOuterAlt(_localctx, 2); {
setState(1096);
match(NOTEQUAL);
}
break;
case LESSTHAN:
enterOuterAlt(_localctx, 3); {
setState(1097);
match(LESSTHAN);
}
break;
case LESSOREQUAL:
enterOuterAlt(_localctx, 4); {
setState(1098);
match(LESSOREQUAL);
}
break;
case GREATERTHAN:
enterOuterAlt(_localctx, 5); {
setState(1099);
match(GREATERTHAN);
}
break;
case GREATEROREQUAL:
enterOuterAlt(_localctx, 6); {
setState(1100);
match(GREATEROREQUAL);
}
break;
case ERR_EQUALEQUAL:
enterOuterAlt(_localctx, 7); {
setState(1101);
((Relational_operatorContext) _localctx).ERR_EQUALEQUAL = match(ERR_EQUALEQUAL);
notifyErrorListeners(((Relational_operatorContext) _localctx).ERR_EQUALEQUAL().getSymbol(),
"mismatched input \'" + ((Relational_operatorContext) _localctx).ERR_EQUALEQUAL().getText()
+ "\' expecting " + AadlBaLexer.tokenNames[AadlBaLexer.EQUAL],
null);
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Binary_adding_operatorContext extends ParserRuleContext {
public BinaryAddingOperator result;
public TerminalNode PLUS() {
return getToken(AadlBaParser.PLUS, 0);
}
public TerminalNode MINUS() {
return getToken(AadlBaParser.MINUS, 0);
}
public Binary_adding_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_binary_adding_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBinary_adding_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBinary_adding_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBinary_adding_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Binary_adding_operatorContext binary_adding_operator() throws RecognitionException {
Binary_adding_operatorContext _localctx = new Binary_adding_operatorContext(_ctx, getState());
enterRule(_localctx, 140, RULE_binary_adding_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1105);
_la = _input.LA(1);
if (!(_la == PLUS || _la == MINUS)) {
_errHandler.recoverInline(this);
}
consume();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Unary_adding_operatorContext extends ParserRuleContext {
public UnaryAddingOperator result;
public TerminalNode PLUS() {
return getToken(AadlBaParser.PLUS, 0);
}
public TerminalNode MINUS() {
return getToken(AadlBaParser.MINUS, 0);
}
public Unary_adding_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_unary_adding_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterUnary_adding_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitUnary_adding_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitUnary_adding_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Unary_adding_operatorContext unary_adding_operator() throws RecognitionException {
Unary_adding_operatorContext _localctx = new Unary_adding_operatorContext(_ctx, getState());
enterRule(_localctx, 142, RULE_unary_adding_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1107);
_la = _input.LA(1);
if (!(_la == PLUS || _la == MINUS)) {
_errHandler.recoverInline(this);
}
consume();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Multiplying_operatorContext extends ParserRuleContext {
public MultiplyingOperator result;
public TerminalNode DIVIDE() {
return getToken(AadlBaParser.DIVIDE, 0);
}
public TerminalNode REM() {
return getToken(AadlBaParser.REM, 0);
}
public TerminalNode STAR() {
return getToken(AadlBaParser.STAR, 0);
}
public TerminalNode MOD() {
return getToken(AadlBaParser.MOD, 0);
}
public Multiplying_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_multiplying_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterMultiplying_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitMultiplying_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitMultiplying_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Multiplying_operatorContext multiplying_operator() throws RecognitionException {
Multiplying_operatorContext _localctx = new Multiplying_operatorContext(_ctx, getState());
enterRule(_localctx, 144, RULE_multiplying_operator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1109);
_la = _input.LA(1);
if (!(((((_la - 24)) & ~0x3f) == 0 && ((1L << (_la - 24)) & ((1L << (MOD - 24)) | (1L << (REM - 24))
| (1L << (STAR - 24)) | (1L << (DIVIDE - 24)))) != 0))) {
_errHandler.recoverInline(this);
}
consume();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Binary_numeric_operatorContext extends ParserRuleContext {
public BinaryNumericOperator result;
public TerminalNode STARSTAR() {
return getToken(AadlBaParser.STARSTAR, 0);
}
public Binary_numeric_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_binary_numeric_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBinary_numeric_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBinary_numeric_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBinary_numeric_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Binary_numeric_operatorContext binary_numeric_operator() throws RecognitionException {
Binary_numeric_operatorContext _localctx = new Binary_numeric_operatorContext(_ctx, getState());
enterRule(_localctx, 146, RULE_binary_numeric_operator);
try {
enterOuterAlt(_localctx, 1);
{
setState(1111);
match(STARSTAR);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Unary_numeric_operatorContext extends ParserRuleContext {
public UnaryNumericOperator result;
public TerminalNode ABS() {
return getToken(AadlBaParser.ABS, 0);
}
public Unary_numeric_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_unary_numeric_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterUnary_numeric_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitUnary_numeric_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitUnary_numeric_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Unary_numeric_operatorContext unary_numeric_operator() throws RecognitionException {
Unary_numeric_operatorContext _localctx = new Unary_numeric_operatorContext(_ctx, getState());
enterRule(_localctx, 148, RULE_unary_numeric_operator);
try {
enterOuterAlt(_localctx, 1);
{
setState(1113);
match(ABS);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Unary_boolean_operatorContext extends ParserRuleContext {
public UnaryBooleanOperator result;
public TerminalNode NOT() {
return getToken(AadlBaParser.NOT, 0);
}
public Unary_boolean_operatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_unary_boolean_operator;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterUnary_boolean_operator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitUnary_boolean_operator(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitUnary_boolean_operator(this);
else
return visitor.visitChildren(this);
}
}
public final Unary_boolean_operatorContext unary_boolean_operator() throws RecognitionException {
Unary_boolean_operatorContext _localctx = new Unary_boolean_operatorContext(_ctx, getState());
enterRule(_localctx, 150, RULE_unary_boolean_operator);
try {
enterOuterAlt(_localctx, 1);
{
setState(1115);
match(NOT);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Boolean_literalContext extends ParserRuleContext {
public BehaviorBooleanLiteral result;
public TerminalNode FALSE() {
return getToken(AadlBaParser.FALSE, 0);
}
public TerminalNode TRUE() {
return getToken(AadlBaParser.TRUE, 0);
}
public Boolean_literalContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_boolean_literal;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBoolean_literal(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBoolean_literal(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBoolean_literal(this);
else
return visitor.visitChildren(this);
}
}
public final Boolean_literalContext boolean_literal() throws RecognitionException {
Boolean_literalContext _localctx = new Boolean_literalContext(_ctx, getState());
enterRule(_localctx, 152, RULE_boolean_literal);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1117);
_la = _input.LA(1);
if (!(_la == FALSE || _la == TRUE)) {
_errHandler.recoverInline(this);
}
consume();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Integer_rangeContext extends ParserRuleContext {
public IntegerRange result;
public List<Integer_valueContext> integer_value() {
return getRuleContexts(Integer_valueContext.class);
}
public TerminalNode DOTDOT() {
return getToken(AadlBaParser.DOTDOT, 0);
}
public Integer_valueContext integer_value(int i) {
return getRuleContext(Integer_valueContext.class, i);
}
public Integer_rangeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_integer_range;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterInteger_range(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitInteger_range(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitInteger_range(this);
else
return visitor.visitChildren(this);
}
}
public final Integer_rangeContext integer_range() throws RecognitionException {
Integer_rangeContext _localctx = new Integer_rangeContext(_ctx, getState());
enterRule(_localctx, 154, RULE_integer_range);
try {
enterOuterAlt(_localctx, 1);
{
setState(1119);
integer_value();
setState(1120);
match(DOTDOT);
setState(1121);
integer_value();
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Integer_valueContext extends ParserRuleContext {
public IntegerValue result;
public Value_variableContext value_variable() {
return getRuleContext(Value_variableContext.class, 0);
}
public Integer_value_constantContext integer_value_constant() {
return getRuleContext(Integer_value_constantContext.class, 0);
}
public Integer_valueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_integer_value;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterInteger_value(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitInteger_value(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitInteger_value(this);
else
return visitor.visitChildren(this);
}
}
public final Integer_valueContext integer_value() throws RecognitionException {
Integer_valueContext _localctx = new Integer_valueContext(_ctx, getState());
enterRule(_localctx, 156, RULE_integer_value);
try {
setState(1125);
switch (getInterpreter().adaptivePredict(_input, 141, _ctx)) {
case 1:
enterOuterAlt(_localctx, 1); {
setState(1123);
integer_value_constant();
}
break;
case 2:
enterOuterAlt(_localctx, 2); {
setState(1124);
value_variable();
}
break;
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Behavior_timeContext extends ParserRuleContext {
public DeclarativeTime result;
public Integer_valueContext integer_value() {
return getRuleContext(Integer_valueContext.class, 0);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public Behavior_timeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_behavior_time;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterBehavior_time(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitBehavior_time(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitBehavior_time(this);
else
return visitor.visitChildren(this);
}
}
public final Behavior_timeContext behavior_time() throws RecognitionException {
Behavior_timeContext _localctx = new Behavior_timeContext(_ctx, getState());
enterRule(_localctx, 158, RULE_behavior_time);
try {
enterOuterAlt(_localctx, 1);
{
setState(1127);
integer_value();
setState(1128);
match(IDENT);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Property_referenceContext extends ParserRuleContext {
public DeclarativePropertyReference result;
public Token h1;
public Token h2;
public List<TerminalNode> DOT() {
return getTokens(AadlBaParser.DOT);
}
public Qualified_named_elementContext qualified_named_element() {
return getRuleContext(Qualified_named_elementContext.class, 0);
}
public Property_nameContext property_name(int i) {
return getRuleContext(Property_nameContext.class, i);
}
public ReferenceContext reference() {
return getRuleContext(ReferenceContext.class, 0);
}
public List<Property_nameContext> property_name() {
return getRuleContexts(Property_nameContext.class);
}
public TerminalNode DOUBLECOLON() {
return getToken(AadlBaParser.DOUBLECOLON, 0);
}
public TerminalNode DOT(int i) {
return getToken(AadlBaParser.DOT, i);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public TerminalNode HASH() {
return getToken(AadlBaParser.HASH, 0);
}
public Property_referenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_property_reference;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterProperty_reference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitProperty_reference(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitProperty_reference(this);
else
return visitor.visitChildren(this);
}
}
public final Property_referenceContext property_reference() throws RecognitionException {
Property_referenceContext _localctx = new Property_referenceContext(_ctx, getState());
enterRule(_localctx, 160, RULE_property_reference);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1141);
switch (_input.LA(1)) {
case HASH: {
{
setState(1130);
((Property_referenceContext) _localctx).h1 = match(HASH);
setState(1133);
switch (getInterpreter().adaptivePredict(_input, 142, _ctx)) {
case 1: {
setState(1131);
match(IDENT);
setState(1132);
match(DOUBLECOLON);
}
break;
}
}
}
break;
case IDENT: {
{
setState(1137);
switch (getInterpreter().adaptivePredict(_input, 143, _ctx)) {
case 1: {
setState(1135);
qualified_named_element();
}
break;
case 2: {
setState(1136);
reference();
}
break;
}
setState(1139);
((Property_referenceContext) _localctx).h2 = match(HASH);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1143);
property_name();
setState(1148);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la == DOT) {
{
{
setState(1144);
match(DOT);
setState(1145);
property_name();
}
}
setState(1150);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Property_nameContext extends ParserRuleContext {
public DeclarativePropertyName result;
public TerminalNode DOT() {
return getToken(AadlBaParser.DOT, 0);
}
public TerminalNode RBRACK(int i) {
return getToken(AadlBaParser.RBRACK, i);
}
public List<Integer_valueContext> integer_value() {
return getRuleContexts(Integer_valueContext.class);
}
public TerminalNode LOWER_BOUND() {
return getToken(AadlBaParser.LOWER_BOUND, 0);
}
public TerminalNode LBRACK(int i) {
return getToken(AadlBaParser.LBRACK, i);
}
public List<TerminalNode> RBRACK() {
return getTokens(AadlBaParser.RBRACK);
}
public TerminalNode IDENT() {
return getToken(AadlBaParser.IDENT, 0);
}
public List<TerminalNode> LBRACK() {
return getTokens(AadlBaParser.LBRACK);
}
public TerminalNode UPPER_BOUND() {
return getToken(AadlBaParser.UPPER_BOUND, 0);
}
public Integer_valueContext integer_value(int i) {
return getRuleContext(Integer_valueContext.class, i);
}
public Property_nameContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_property_name;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterProperty_name(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitProperty_name(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitProperty_name(this);
else
return visitor.visitChildren(this);
}
}
public final Property_nameContext property_name() throws RecognitionException {
Property_nameContext _localctx = new Property_nameContext(_ctx, getState());
enterRule(_localctx, 162, RULE_property_name);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1151);
match(IDENT);
setState(1162);
switch (getInterpreter().adaptivePredict(_input, 147, _ctx)) {
case 1: {
setState(1156);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(1152);
match(LBRACK);
setState(1153);
integer_value();
setState(1154);
match(RBRACK);
}
}
setState(1158);
_errHandler.sync(this);
_la = _input.LA(1);
} while (_la == LBRACK);
}
break;
case 2: {
{
setState(1160);
match(DOT);
setState(1161);
_la = _input.LA(1);
if (!(_la == LOWER_BOUND || _la == UPPER_BOUND)) {
_errHandler.recoverInline(this);
}
consume();
}
}
break;
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Numeric_literalContext extends ParserRuleContext {
public NumericLiteral result;
public Real_literalContext real_literal() {
return getRuleContext(Real_literalContext.class, 0);
}
public Integer_literalContext integer_literal() {
return getRuleContext(Integer_literalContext.class, 0);
}
public Numeric_literalContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_numeric_literal;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterNumeric_literal(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitNumeric_literal(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitNumeric_literal(this);
else
return visitor.visitChildren(this);
}
}
public final Numeric_literalContext numeric_literal() throws RecognitionException {
Numeric_literalContext _localctx = new Numeric_literalContext(_ctx, getState());
enterRule(_localctx, 164, RULE_numeric_literal);
try {
setState(1166);
switch (_input.LA(1)) {
case INTEGER_LIT:
enterOuterAlt(_localctx, 1); {
setState(1164);
integer_literal();
}
break;
case REAL_LIT:
enterOuterAlt(_localctx, 2); {
setState(1165);
real_literal();
}
break;
default:
throw new NoViableAltException(this);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Real_literalContext extends ParserRuleContext {
public BehaviorRealLiteral result;
public TerminalNode REAL_LIT() {
return getToken(AadlBaParser.REAL_LIT, 0);
}
public Real_literalContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_real_literal;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterReal_literal(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitReal_literal(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitReal_literal(this);
else
return visitor.visitChildren(this);
}
}
public final Real_literalContext real_literal() throws RecognitionException {
Real_literalContext _localctx = new Real_literalContext(_ctx, getState());
enterRule(_localctx, 166, RULE_real_literal);
try {
enterOuterAlt(_localctx, 1);
{
setState(1168);
match(REAL_LIT);
realLiteralChecker(_localctx.REAL_LIT());
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class Integer_literalContext extends ParserRuleContext {
public BehaviorIntegerLiteral result;
public TerminalNode INTEGER_LIT() {
return getToken(AadlBaParser.INTEGER_LIT, 0);
}
public Integer_literalContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_integer_literal;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterInteger_literal(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitInteger_literal(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitInteger_literal(this);
else
return visitor.visitChildren(this);
}
}
public final Integer_literalContext integer_literal() throws RecognitionException {
Integer_literalContext _localctx = new Integer_literalContext(_ctx, getState());
enterRule(_localctx, 168, RULE_integer_literal);
try {
enterOuterAlt(_localctx, 1);
{
setState(1171);
match(INTEGER_LIT);
integerLiteralChecker(_localctx.INTEGER_LIT());
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class String_literalContext extends ParserRuleContext {
public BehaviorStringLiteral result;
public TerminalNode STRING_LITERAL() {
return getToken(AadlBaParser.STRING_LITERAL, 0);
}
public String_literalContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_string_literal;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterString_literal(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitString_literal(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitString_literal(this);
else
return visitor.visitChildren(this);
}
}
public final String_literalContext string_literal() throws RecognitionException {
String_literalContext _localctx = new String_literalContext(_ctx, getState());
enterRule(_localctx, 170, RULE_string_literal);
try {
enterOuterAlt(_localctx, 1);
{
setState(1174);
match(STRING_LITERAL);
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static class NumeralContext extends ParserRuleContext {
public Integer result;
public TerminalNode INTEGER_LIT() {
return getToken(AadlBaParser.INTEGER_LIT, 0);
}
public NumeralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override
public int getRuleIndex() {
return RULE_numeral;
}
@Override
public void enterRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).enterNumeral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if (listener instanceof AadlBaListener)
((AadlBaListener) listener).exitNumeral(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if (visitor instanceof AadlBaVisitor)
return ((AadlBaVisitor<? extends T>) visitor).visitNumeral(this);
else
return visitor.visitChildren(this);
}
}
public final NumeralContext numeral() throws RecognitionException {
NumeralContext _localctx = new NumeralContext(_ctx, getState());
enterRule(_localctx, 172, RULE_numeral);
try {
enterOuterAlt(_localctx, 1);
{
setState(1176);
match(INTEGER_LIT);
integerLiteralChecker(_localctx.INTEGER_LIT());
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
exitRule();
}
return _localctx;
}
public static final String _serializedATN = "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3W\u049e\4\2\t\2\4"
+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"
+ "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"
+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"
+ "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"
+ "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"
+ ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"
+ "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="
+ "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"
+ "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"
+ "\4U\tU\4V\tV\4W\tW\4X\tX\3\2\3\2\6\2\u00b3\n\2\r\2\16\2\u00b4\5\2\u00b7"
+ "\n\2\3\2\3\2\6\2\u00bb\n\2\r\2\16\2\u00bc\5\2\u00bf\n\2\3\2\3\2\6\2\u00c3"
+ "\n\2\r\2\16\2\u00c4\5\2\u00c7\n\2\3\3\3\3\3\3\5\3\u00cc\n\3\3\3\3\3\3"
+ "\3\7\3\u00d1\n\3\f\3\16\3\u00d4\13\3\3\3\3\3\3\3\3\3\5\3\u00da\n\3\3\3"
+ "\3\3\6\3\u00de\n\3\r\3\16\3\u00df\3\3\3\3\5\3\u00e4\n\3\3\3\5\3\u00e7"
+ "\n\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\7\4\u00f0\n\4\f\4\16\4\u00f3\13\4\3\5"
+ "\3\5\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3\7\7\7\u00ff\n\7\f\7\16\7\u0102\13\7"
+ "\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u0110\n\b\3\t\3\t"
+ "\3\t\3\t\7\t\u0116\n\t\f\t\16\t\u0119\13\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n"
+ "\3\13\3\13\3\f\3\f\3\f\3\f\3\r\3\r\3\r\7\r\u012b\n\r\f\r\16\r\u012e\13"
+ "\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\20\3\20"
+ "\3\21\3\21\5\21\u0140\n\21\3\22\5\22\u0143\n\22\3\22\3\22\3\23\3\23\5"
+ "\23\u0149\n\23\3\24\3\24\3\25\5\25\u014e\n\25\3\25\3\25\3\26\3\26\5\26"
+ "\u0154\n\26\3\27\3\27\3\27\7\27\u0159\n\27\f\27\16\27\u015c\13\27\3\27"
+ "\3\27\3\27\3\27\3\27\5\27\u0163\n\27\3\30\3\30\3\31\3\31\3\31\5\31\u016a"
+ "\n\31\3\31\3\31\7\31\u016e\n\31\f\31\16\31\u0171\13\31\3\31\3\31\5\31"
+ "\u0175\n\31\3\31\5\31\u0178\n\31\3\31\5\31\u017b\n\31\3\31\3\31\5\31\u017f"
+ "\n\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\5\32\u0188\n\32\3\32\5\32\u018b"
+ "\n\32\3\32\3\32\3\32\5\32\u0190\n\32\3\32\3\32\7\32\u0194\n\32\f\32\16"
+ "\32\u0197\13\32\3\32\3\32\3\32\3\32\3\32\5\32\u019e\n\32\3\32\5\32\u01a1"
+ "\n\32\3\32\3\32\3\33\3\33\3\33\5\33\u01a8\n\33\3\34\3\34\3\34\3\34\3\34"
+ "\6\34\u01af\n\34\r\34\16\34\u01b0\3\34\3\34\6\34\u01b5\n\34\r\34\16\34"
+ "\u01b6\3\34\3\34\5\34\u01bb\n\34\3\35\3\35\3\35\3\35\3\35\5\35\u01c2\n"
+ "\35\5\35\u01c4\n\35\3\36\3\36\3\36\5\36\u01c9\n\36\3\37\3\37\5\37\u01cd"
+ "\n\37\3 \3 \5 \u01d1\n \3 \3 \3 \3 \5 \u01d7\n \3 \3 \3 \7 \u01dc\n \f"
+ " \16 \u01df\13 \5 \u01e1\n \3!\3!\3!\5!\u01e6\n!\3!\5!\u01e9\n!\3\"\3"
+ "\"\3\"\7\"\u01ee\n\"\f\"\16\"\u01f1\13\"\3#\3#\3#\7#\u01f6\n#\f#\16#\u01f9"
+ "\13#\3$\3$\3$\7$\u01fe\n$\f$\16$\u0201\13$\3%\3%\3%\7%\u0206\n%\f%\16"
+ "%\u0209\13%\3&\3&\3&\5&\u020e\n&\3&\3&\3&\7&\u0213\n&\f&\16&\u0216\13"
+ "&\3&\5&\u0219\n&\3&\3&\5&\u021d\n&\3&\3&\3&\7&\u0222\n&\f&\16&\u0225\13"
+ "&\3&\5&\u0228\n&\3&\5&\u022b\n&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\5\'\u0234"
+ "\n\'\3(\3(\3(\3(\3(\3(\7(\u023c\n(\f(\16(\u023f\13(\3(\3(\5(\u0243\n("
+ "\3(\3(\3(\3(\3(\6(\u024a\n(\r(\16(\u024b\3(\3(\6(\u0250\n(\r(\16(\u0251"
+ "\3(\3(\7(\u0256\n(\f(\16(\u0259\13(\3(\3(\5(\u025d\n(\3(\3(\3(\5(\u0262"
+ "\n(\3(\3(\5(\u0266\n(\3)\3)\6)\u026a\n)\r)\16)\u026b\3)\3)\6)\u0270\n"
+ ")\r)\16)\u0271\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\6*\u027e\n*\r*\16*\u027f"
+ "\3*\3*\6*\u0284\n*\r*\16*\u0285\3*\3*\5*\u028a\n*\3+\3+\3+\3+\3+\3+\3"
+ "+\3+\3+\3+\3+\6+\u0297\n+\r+\16+\u0298\3+\3+\3+\3+\3+\3+\6+\u02a1\n+\r"
+ "+\16+\u02a2\3+\3+\5+\u02a7\n+\3,\3,\3,\3,\3,\3,\3,\6,\u02b0\n,\r,\16,"
+ "\u02b1\3,\3,\6,\u02b6\n,\r,\16,\u02b7\3,\3,\5,\u02bc\n,\3-\3-\3-\3-\3"
+ "-\3-\3-\3-\3-\3-\3-\6-\u02c9\n-\r-\16-\u02ca\3-\3-\3-\3-\3-\3-\6-\u02d3"
+ "\n-\r-\16-\u02d4\3-\3-\5-\u02d9\n-\3.\3.\3.\3.\3.\3.\3.\6.\u02e2\n.\r"
+ ".\16.\u02e3\3.\3.\6.\u02e8\n.\r.\16.\u02e9\3.\3.\5.\u02ee\n.\3/\3/\3/"
+ "\3/\3/\3/\3/\6/\u02f7\n/\r/\16/\u02f8\3/\3/\6/\u02fd\n/\r/\16/\u02fe\3"
+ "/\3/\5/\u0303\n/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60"
+ "\6\60\u0310\n\60\r\60\16\60\u0311\3\60\3\60\6\60\u0316\n\60\r\60\16\60"
+ "\u0317\3\60\3\60\5\60\u031c\n\60\3\61\3\61\5\61\u0320\n\61\3\62\3\62\3"
+ "\62\5\62\u0325\n\62\3\63\3\63\3\63\3\63\5\63\u032b\n\63\3\63\3\63\3\64"
+ "\3\64\3\65\3\65\3\65\6\65\u0334\n\65\r\65\16\65\u0335\3\65\3\65\3\65\3"
+ "\65\3\65\5\65\u033d\n\65\3\66\3\66\3\66\3\66\3\66\3\66\5\66\u0345\n\66"
+ "\3\66\3\66\3\66\3\66\3\66\3\66\5\66\u034d\n\66\3\66\3\66\3\66\3\66\3\66"
+ "\3\66\3\66\3\66\5\66\u0357\n\66\3\66\3\66\6\66\u035b\n\66\r\66\16\66\u035c"
+ "\3\66\3\66\6\66\u0361\n\66\r\66\16\66\u0362\5\66\u0365\n\66\3\66\3\66"
+ "\3\66\6\66\u036a\n\66\r\66\16\66\u036b\3\66\3\66\6\66\u0370\n\66\r\66"
+ "\16\66\u0371\5\66\u0374\n\66\3\66\5\66\u0377\n\66\3\66\3\66\3\66\3\66"
+ "\3\66\6\66\u037e\n\66\r\66\16\66\u037f\3\66\3\66\6\66\u0384\n\66\r\66"
+ "\16\66\u0385\5\66\u0388\n\66\3\66\3\66\5\66\u038c\n\66\3\67\3\67\3\67"
+ "\3\67\3\67\5\67\u0393\n\67\3\67\3\67\5\67\u0397\n\67\3\67\3\67\6\67\u039b"
+ "\n\67\r\67\16\67\u039c\3\67\3\67\3\67\5\67\u03a2\n\67\3\67\6\67\u03a5"
+ "\n\67\r\67\16\67\u03a6\3\67\5\67\u03aa\n\67\3\67\3\67\5\67\u03ae\n\67"
+ "\38\38\38\38\38\38\38\38\38\68\u03b9\n8\r8\168\u03ba\38\38\68\u03bf\n"
+ "8\r8\168\u03c0\38\38\58\u03c5\n8\39\39\39\59\u03ca\n9\39\39\39\79\u03cf"
+ "\n9\f9\169\u03d2\139\3:\3:\3:\5:\u03d7\n:\3:\3:\3:\7:\u03dc\n:\f:\16:"
+ "\u03df\13:\3;\3;\3<\3<\3<\7<\u03e6\n<\f<\16<\u03e9\13<\3=\3=\3=\3=\3="
+ "\7=\u03f0\n=\f=\16=\u03f3\13=\3>\3>\3>\3>\5>\u03f9\n>\3?\3?\3?\3?\3?\3"
+ "?\3?\6?\u0402\n?\r?\16?\u0403\3?\3?\6?\u0408\n?\r?\16?\u0409\3?\3?\5?"
+ "\u040e\n?\3@\3@\3@\3@\5@\u0414\n@\3A\3A\3A\3A\7A\u041a\nA\fA\16A\u041d"
+ "\13A\3B\3B\3B\3B\5B\u0423\nB\3C\5C\u0426\nC\3C\3C\3C\3C\7C\u042c\nC\f"
+ "C\16C\u042f\13C\3D\3D\3D\3D\7D\u0435\nD\fD\16D\u0438\13D\3E\3E\3E\3E\5"
+ "E\u043e\nE\3E\3E\3E\3E\3E\3E\5E\u0446\nE\3F\3F\3G\3G\3G\3G\3G\3G\3G\3"
+ "G\5G\u0452\nG\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3M\3M\3N\3N\3O\3O\3O\3O\3"
+ "P\3P\5P\u0468\nP\3Q\3Q\3Q\3R\3R\3R\5R\u0470\nR\3R\3R\5R\u0474\nR\3R\3"
+ "R\5R\u0478\nR\3R\3R\3R\7R\u047d\nR\fR\16R\u0480\13R\3S\3S\3S\3S\3S\6S"
+ "\u0487\nS\rS\16S\u0488\3S\3S\5S\u048d\nS\3T\3T\5T\u0491\nT\3U\3U\3U\3"
+ "V\3V\3V\3W\3W\3X\3X\3X\3X\2\2Y\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36"
+ " \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082"
+ "\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a"
+ "\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\2\13\3\2"
+ "FG\4\2\16\16QQ\4\2\67\67@@\3\2<=\4\2\n\n\24\24\5\2\4\4\35\35++\5\2\32"
+ "\32!!HI\4\2\20\20\'\'\4\2\31\31))\u04ff\2\u00b6\3\2\2\2\4\u00c8\3\2\2"
+ "\2\6\u00ea\3\2\2\2\b\u00f4\3\2\2\2\n\u00f9\3\2\2\2\f\u0100\3\2\2\2\16"
+ "\u010f\3\2\2\2\20\u0111\3\2\2\2\22\u011c\3\2\2\2\24\u0121\3\2\2\2\26\u0123"
+ "\3\2\2\2\30\u0127\3\2\2\2\32\u0131\3\2\2\2\34\u0136\3\2\2\2\36\u013b\3"
+ "\2\2\2 \u013d\3\2\2\2\"\u0142\3\2\2\2$\u0146\3\2\2\2&\u014a\3\2\2\2(\u014d"
+ "\3\2\2\2*\u0153\3\2\2\2,\u015a\3\2\2\2.\u0164\3\2\2\2\60\u0166\3\2\2\2"
+ "\62\u018a\3\2\2\2\64\u01a4\3\2\2\2\66\u01ba\3\2\2\28\u01c3\3\2\2\2:\u01c8"
+ "\3\2\2\2<\u01cc\3\2\2\2>\u01ce\3\2\2\2@\u01e8\3\2\2\2B\u01ea\3\2\2\2D"
+ "\u01f2\3\2\2\2F\u01fa\3\2\2\2H\u0202\3\2\2\2J\u020a\3\2\2\2L\u0233\3\2"
+ "\2\2N\u0265\3\2\2\2P\u0267\3\2\2\2R\u0289\3\2\2\2T\u02a6\3\2\2\2V\u02bb"
+ "\3\2\2\2X\u02d8\3\2\2\2Z\u02ed\3\2\2\2\\\u0302\3\2\2\2^\u031b\3\2\2\2"
+ "`\u031f\3\2\2\2b\u0324\3\2\2\2d\u0326\3\2\2\2f\u032e\3\2\2\2h\u0333\3"
+ "\2\2\2j\u038b\3\2\2\2l\u03ad\3\2\2\2n\u03c4\3\2\2\2p\u03c6\3\2\2\2r\u03d3"
+ "\3\2\2\2t\u03e0\3\2\2\2v\u03e2\3\2\2\2x\u03ea\3\2\2\2z\u03f8\3\2\2\2|"
+ "\u040d\3\2\2\2~\u040f\3\2\2\2\u0080\u0415\3\2\2\2\u0082\u041e\3\2\2\2"
+ "\u0084\u0425\3\2\2\2\u0086\u0430\3\2\2\2\u0088\u0445\3\2\2\2\u008a\u0447"
+ "\3\2\2\2\u008c\u0451\3\2\2\2\u008e\u0453\3\2\2\2\u0090\u0455\3\2\2\2\u0092"
+ "\u0457\3\2\2\2\u0094\u0459\3\2\2\2\u0096\u045b\3\2\2\2\u0098\u045d\3\2"
+ "\2\2\u009a\u045f\3\2\2\2\u009c\u0461\3\2\2\2\u009e\u0467\3\2\2\2\u00a0"
+ "\u0469\3\2\2\2\u00a2\u0477\3\2\2\2\u00a4\u0481\3\2\2\2\u00a6\u0490\3\2"
+ "\2\2\u00a8\u0492\3\2\2\2\u00aa\u0495\3\2\2\2\u00ac\u0498\3\2\2\2\u00ae"
+ "\u049a\3\2\2\2\u00b0\u00b2\7 \2\2\u00b1\u00b3\5\4\3\2\u00b2\u00b1\3\2"
+ "\2\2\u00b3\u00b4\3\2\2\2\u00b4\u00b2\3\2\2\2\u00b4\u00b5\3\2\2\2\u00b5"
+ "\u00b7\3\2\2\2\u00b6\u00b0\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00be\3\2"
+ "\2\2\u00b8\u00ba\7#\2\2\u00b9\u00bb\5\60\31\2\u00ba\u00b9\3\2\2\2\u00bb"
+ "\u00bc\3\2\2\2\u00bc\u00ba\3\2\2\2\u00bc\u00bd\3\2\2\2\u00bd\u00bf\3\2"
+ "\2\2\u00be\u00b8\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf\u00c6\3\2\2\2\u00c0"
+ "\u00c2\7&\2\2\u00c1\u00c3\5\62\32\2\u00c2\u00c1\3\2\2\2\u00c3\u00c4\3"
+ "\2\2\2\u00c4\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c7\3\2\2\2\u00c6"
+ "\u00c0\3\2\2\2\u00c6\u00c7\3\2\2\2\u00c7\3\3\2\2\2\u00c8\u00c9\5\6\4\2"
+ "\u00c9\u00d2\b\3\1\2\u00ca\u00cc\7.\2\2\u00cb\u00ca\3\2\2\2\u00cb\u00cc"
+ "\3\2\2\2\u00cc\u00cd\3\2\2\2\u00cd\u00ce\5\6\4\2\u00ce\u00cf\b\3\1\2\u00cf"
+ "\u00d1\3\2\2\2\u00d0\u00cb\3\2\2\2\u00d1\u00d4\3\2\2\2\u00d2\u00d0\3\2"
+ "\2\2\u00d2\u00d3\3\2\2\2\u00d3\u00d5\3\2\2\2\u00d4\u00d2\3\2\2\2\u00d5"
+ "\u00d6\7\66\2\2\u00d6\u00d9\5.\30\2\u00d7\u00d8\7\67\2\2\u00d8\u00da\5"
+ "z>\2\u00d9\u00d7\3\2\2\2\u00d9\u00da\3\2\2\2\u00da\u00e3\3\2\2\2\u00db"
+ "\u00dd\7\64\2\2\u00dc\u00de\5\b\5\2\u00dd\u00dc\3\2\2\2\u00de\u00df\3"
+ "\2\2\2\u00df\u00dd\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1"
+ "\u00e2\7\65\2\2\u00e2\u00e4\3\2\2\2\u00e3\u00db\3\2\2\2\u00e3\u00e4\3"
+ "\2\2\2\u00e4\u00e6\3\2\2\2\u00e5\u00e7\7L\2\2\u00e6\u00e5\3\2\2\2\u00e6"
+ "\u00e7\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\u00e9\b\3\1\2\u00e9\5\3\2\2\2"
+ "\u00ea\u00f1\7R\2\2\u00eb\u00ec\7,\2\2\u00ec\u00ed\5<\37\2\u00ed\u00ee"
+ "\7-\2\2\u00ee\u00f0\3\2\2\2\u00ef\u00eb\3\2\2\2\u00f0\u00f3\3\2\2\2\u00f1"
+ "\u00ef\3\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\7\3\2\2\2\u00f3\u00f1\3\2\2\2"
+ "\u00f4\u00f5\5\n\6\2\u00f5\u00f6\78\2\2\u00f6\u00f7\5\16\b\2\u00f7\u00f8"
+ "\7L\2\2\u00f8\t\3\2\2\2\u00f9\u00fa\5\f\7\2\u00fa\13\3\2\2\2\u00fb\u00fc"
+ "\7R\2\2\u00fc\u00fd\7M\2\2\u00fd\u00ff\b\7\1\2\u00fe\u00fb\3\2\2\2\u00ff"
+ "\u0102\3\2\2\2\u0100\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101\u0103\3\2"
+ "\2\2\u0102\u0100\3\2\2\2\u0103\u0104\7R\2\2\u0104\u0105\b\7\1\2\u0105"
+ "\r\3\2\2\2\u0106\u0110\5\30\r\2\u0107\u0110\5\22\n\2\u0108\u0110\5\34"
+ "\17\2\u0109\u0110\5&\24\2\u010a\u0110\5\26\f\2\u010b\u0110\5 \21\2\u010c"
+ "\u0110\5$\23\2\u010d\u0110\5\20\t\2\u010e\u0110\5\24\13\2\u010f\u0106"
+ "\3\2\2\2\u010f\u0107\3\2\2\2\u010f\u0108\3\2\2\2\u010f\u0109\3\2\2\2\u010f"
+ "\u010a\3\2\2\2\u010f\u010b\3\2\2\2\u010f\u010c\3\2\2\2\u010f\u010d\3\2"
+ "\2\2\u010f\u010e\3\2\2\2\u0110\17\3\2\2\2\u0111\u0112\7\61\2\2\u0112\u0117"
+ "\5\16\b\2\u0113\u0114\7.\2\2\u0114\u0116\5\16\b\2\u0115\u0113\3\2\2\2"
+ "\u0116\u0119\3\2\2\2\u0117\u0115\3\2\2\2\u0117\u0118\3\2\2\2\u0118\u011a"
+ "\3\2\2\2\u0119\u0117\3\2\2\2\u011a\u011b\7\62\2\2\u011b\21\3\2\2\2\u011c"
+ "\u011d\7\37\2\2\u011d\u011e\7\61\2\2\u011e\u011f\5v<\2\u011f\u0120\7\62"
+ "\2\2\u0120\23\3\2\2\2\u0121\u0122\5\u009aN\2\u0122\25\3\2\2\2\u0123\u0124"
+ "\5*\26\2\u0124\u0125\7K\2\2\u0125\u0126\5*\26\2\u0126\27\3\2\2\2\u0127"
+ "\u0128\7,\2\2\u0128\u012c\5\32\16\2\u0129\u012b\5\32\16\2\u012a\u0129"
+ "\3\2\2\2\u012b\u012e\3\2\2\2\u012c\u012a\3\2\2\2\u012c\u012d\3\2\2\2\u012d"
+ "\u012f\3\2\2\2\u012e\u012c\3\2\2\2\u012f\u0130\7-\2\2\u0130\31\3\2\2\2"
+ "\u0131\u0132\7R\2\2\u0132\u0133\78\2\2\u0133\u0134\5\16\b\2\u0134\u0135"
+ "\7L\2\2\u0135\33\3\2\2\2\u0136\u0137\7\7\2\2\u0137\u0138\7\61\2\2\u0138"
+ "\u0139\5.\30\2\u0139\u013a\7\62\2\2\u013a\35\3\2\2\2\u013b\u013c\5\f\7"
+ "\2\u013c\37\3\2\2\2\u013d\u013f\5\"\22\2\u013e\u0140\5\36\20\2\u013f\u013e"
+ "\3\2\2\2\u013f\u0140\3\2\2\2\u0140!\3\2\2\2\u0141\u0143\t\2\2\2\u0142"
+ "\u0141\3\2\2\2\u0142\u0143\3\2\2\2\u0143\u0144\3\2\2\2\u0144\u0145\5\u00aa"
+ "V\2\u0145#\3\2\2\2\u0146\u0148\5(\25\2\u0147\u0149\5\36\20\2\u0148\u0147"
+ "\3\2\2\2\u0148\u0149\3\2\2\2\u0149%\3\2\2\2\u014a\u014b\7S\2\2\u014b\'"
+ "\3\2\2\2\u014c\u014e\t\2\2\2\u014d\u014c\3\2\2\2\u014d\u014e\3\2\2\2\u014e"
+ "\u014f\3\2\2\2\u014f\u0150\5\u00a8U\2\u0150)\3\2\2\2\u0151\u0154\5 \21"
+ "\2\u0152\u0154\5$\23\2\u0153\u0151\3\2\2\2\u0153\u0152\3\2\2\2\u0154+"
+ "\3\2\2\2\u0155\u0156\7R\2\2\u0156\u0157\7M\2\2\u0157\u0159\b\27\1\2\u0158"
+ "\u0155\3\2\2\2\u0159\u015c\3\2\2\2\u015a\u0158\3\2\2\2\u015a\u015b\3\2"
+ "\2\2\u015b\u015d\3\2\2\2\u015c\u015a\3\2\2\2\u015d\u015e\7R\2\2\u015e"
+ "\u0162\b\27\1\2\u015f\u0160\7>\2\2\u0160\u0161\7R\2\2\u0161\u0163\b\27"
+ "\1\2\u0162\u015f\3\2\2\2\u0162\u0163\3\2\2\2\u0163-\3\2\2\2\u0164\u0165"
+ "\5,\27\2\u0165/\3\2\2\2\u0166\u0167\7R\2\2\u0167\u016f\b\31\1\2\u0168"
+ "\u016a\7.\2\2\u0169\u0168\3\2\2\2\u0169\u016a\3\2\2\2\u016a\u016b\3\2"
+ "\2\2\u016b\u016c\7R\2\2\u016c\u016e\b\31\1\2\u016d\u0169\3\2\2\2\u016e"
+ "\u0171\3\2\2\2\u016f\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170\u0172\3\2"
+ "\2\2\u0171\u016f\3\2\2\2\u0172\u0174\7\66\2\2\u0173\u0175\7\30\2\2\u0174"
+ "\u0173\3\2\2\2\u0174\u0175\3\2\2\2\u0175\u0177\3\2\2\2\u0176\u0178\7\b"
+ "\2\2\u0177\u0176\3\2\2\2\u0177\u0178\3\2\2\2\u0178\u017a\3\2\2\2\u0179"
+ "\u017b\7\21\2\2\u017a\u0179\3\2\2\2\u017a\u017b\3\2\2\2\u017b\u017c\3"
+ "\2\2\2\u017c\u017e\7\"\2\2\u017d\u017f\7L\2\2\u017e\u017d\3\2\2\2\u017e"
+ "\u017f\3\2\2\2\u017f\u0180\3\2\2\2\u0180\u0181\b\31\1\2\u0181\61\3\2\2"
+ "\2\u0182\u0187\7R\2\2\u0183\u0184\7,\2\2\u0184\u0185\5\u00aeX\2\u0185"
+ "\u0186\7-\2\2\u0186\u0188\3\2\2\2\u0187\u0183\3\2\2\2\u0187\u0188\3\2"
+ "\2\2\u0188\u0189\3\2\2\2\u0189\u018b\7\66\2\2\u018a\u0182\3\2\2\2\u018a"
+ "\u018b\3\2\2\2\u018b\u018c\3\2\2\2\u018c\u018d\7R\2\2\u018d\u0195\b\32"
+ "\1\2\u018e\u0190\7.\2\2\u018f\u018e\3\2\2\2\u018f\u0190\3\2\2\2\u0190"
+ "\u0191\3\2\2\2\u0191\u0192\7R\2\2\u0192\u0194\b\32\1\2\u0193\u018f\3\2"
+ "\2\2\u0194\u0197\3\2\2\2\u0195\u0193\3\2\2\2\u0195\u0196\3\2\2\2\u0196"
+ "\u0198\3\2\2\2\u0197\u0195\3\2\2\2\u0198\u0199\7/\2\2\u0199\u019a\58\35"
+ "\2\u019a\u019b\7\60\2\2\u019b\u019d\7R\2\2\u019c\u019e\5\64\33\2\u019d"
+ "\u019c\3\2\2\2\u019d\u019e\3\2\2\2\u019e\u01a0\3\2\2\2\u019f\u01a1\7L"
+ "\2\2\u01a0\u019f\3\2\2\2\u01a0\u01a1\3\2\2\2\u01a1\u01a2\3\2\2\2\u01a2"
+ "\u01a3\b\32\1\2\u01a3\63\3\2\2\2\u01a4\u01a7\5\66\34\2\u01a5\u01a6\7%"
+ "\2\2\u01a6\u01a8\5\u00a0Q\2\u01a7\u01a5\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8"
+ "\65\3\2\2\2\u01a9\u01aa\7\64\2\2\u01aa\u01ab\5J&\2\u01ab\u01ac\7\65\2"
+ "\2\u01ac\u01bb\3\2\2\2\u01ad\u01af\7\64\2\2\u01ae\u01ad\3\2\2\2\u01af"
+ "\u01b0\3\2\2\2\u01b0\u01ae\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1\u01b2\3\2"
+ "\2\2\u01b2\u01b4\5J&\2\u01b3\u01b5\7\65\2\2\u01b4\u01b3\3\2\2\2\u01b5"
+ "\u01b6\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b6\u01b7\3\2\2\2\u01b7\u01b8\3\2"
+ "\2\2\u01b8\u01b9\b\34\1\2\u01b9\u01bb\3\2\2\2\u01ba\u01a9\3\2\2\2\u01ba"
+ "\u01ae\3\2\2\2\u01bb\67\3\2\2\2\u01bc\u01bd\7\34\2\2\u01bd\u01c4\5> \2"
+ "\u01be\u01bf\7\34\2\2\u01bf\u01c4\5B\"\2\u01c0\u01c2\5:\36\2\u01c1\u01c0"
+ "\3\2\2\2\u01c1\u01c2\3\2\2\2\u01c2\u01c4\3\2\2\2\u01c3\u01bc\3\2\2\2\u01c3"
+ "\u01be\3\2\2\2\u01c3\u01c1\3\2\2\2\u01c49\3\2\2\2\u01c5\u01c9\5\u0080"
+ "A\2\u01c6\u01c9\7%\2\2\u01c7\u01c9\7\36\2\2\u01c8\u01c5\3\2\2\2\u01c8"
+ "\u01c6\3\2\2\2\u01c8\u01c7\3\2\2\2\u01c9;\3\2\2\2\u01ca\u01cd\5\u00aa"
+ "V\2\u01cb\u01cd\5\u00a2R\2\u01cc\u01ca\3\2\2\2\u01cc\u01cb\3\2\2\2\u01cd"
+ "=\3\2\2\2\u01ce\u01d0\7\13\2\2\u01cf\u01d1\5@!\2\u01d0\u01cf\3\2\2\2\u01d0"
+ "\u01d1\3\2\2\2\u01d1\u01e0\3\2\2\2\u01d2\u01d3\7\25\2\2\u01d3\u01d4\5"
+ "v<\2\u01d4\u01dd\b \1\2\u01d5\u01d7\7.\2\2\u01d6\u01d5\3\2\2\2\u01d6\u01d7"
+ "\3\2\2\2\u01d7\u01d8\3\2\2\2\u01d8\u01d9\5v<\2\u01d9\u01da\b \1\2\u01da"
+ "\u01dc\3\2\2\2\u01db\u01d6\3\2\2\2\u01dc\u01df\3\2\2\2\u01dd\u01db\3\2"
+ "\2\2\u01dd\u01de\3\2\2\2\u01de\u01e1\3\2\2\2\u01df\u01dd\3\2\2\2\u01e0"
+ "\u01d2\3\2\2\2\u01e0\u01e1\3\2\2\2\u01e1?\3\2\2\2\u01e2\u01e9\5D#\2\u01e3"
+ "\u01e5\7%\2\2\u01e4\u01e6\5\u00a0Q\2\u01e5\u01e4\3\2\2\2\u01e5\u01e6\3"
+ "\2\2\2\u01e6\u01e9\3\2\2\2\u01e7\u01e9\7$\2\2\u01e8\u01e2\3\2\2\2\u01e8"
+ "\u01e3\3\2\2\2\u01e8\u01e7\3\2\2\2\u01e9A\3\2\2\2\u01ea\u01ef\5H%\2\u01eb"
+ "\u01ec\7\35\2\2\u01ec\u01ee\5H%\2\u01ed\u01eb\3\2\2\2\u01ee\u01f1\3\2"
+ "\2\2\u01ef\u01ed\3\2\2\2\u01ef\u01f0\3\2\2\2\u01f0C\3\2\2\2\u01f1\u01ef"
+ "\3\2\2\2\u01f2\u01f7\5F$\2\u01f3\u01f4\7\35\2\2\u01f4\u01f6\5F$\2\u01f5"
+ "\u01f3\3\2\2\2\u01f6\u01f9\3\2\2\2\u01f7\u01f5\3\2\2\2\u01f7\u01f8\3\2"
+ "\2\2\u01f8E\3\2\2\2\u01f9\u01f7\3\2\2\2\u01fa\u01ff\5v<\2\u01fb\u01fc"
+ "\7\4\2\2\u01fc\u01fe\5v<\2\u01fd\u01fb\3\2\2\2\u01fe\u0201\3\2\2\2\u01ff"
+ "\u01fd\3\2\2\2\u01ff\u0200\3\2\2\2\u0200G\3\2\2\2\u0201\u01ff\3\2\2\2"
+ "\u0202\u0207\5v<\2\u0203\u0204\7\4\2\2\u0204\u0206\5v<\2\u0205\u0203\3"
+ "\2\2\2\u0206\u0209\3\2\2\2\u0207\u0205\3\2\2\2\u0207\u0208\3\2\2\2\u0208"
+ "I\3\2\2\2\u0209\u0207\3\2\2\2\u020a\u020b\5L\'\2\u020b\u022a\b&\1\2\u020c"
+ "\u020e\7L\2\2\u020d\u020c\3\2\2\2\u020d\u020e\3\2\2\2\u020e\u020f\3\2"
+ "\2\2\u020f\u0210\5L\'\2\u0210\u0211\b&\1\2\u0211\u0213\3\2\2\2\u0212\u020d"
+ "\3\2\2\2\u0213\u0216\3\2\2\2\u0214\u0212\3\2\2\2\u0214\u0215\3\2\2\2\u0215"
+ "\u0218\3\2\2\2\u0216\u0214\3\2\2\2\u0217\u0219\7L\2\2\u0218\u0217\3\2"
+ "\2\2\u0218\u0219\3\2\2\2\u0219\u021a\3\2\2\2\u021a\u022b\b&\1\2\u021b"
+ "\u021d\7\63\2\2\u021c\u021b\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u021e\3"
+ "\2\2\2\u021e\u021f\5L\'\2\u021f\u0220\b&\1\2\u0220\u0222\3\2\2\2\u0221"
+ "\u021c\3\2\2\2\u0222\u0225\3\2\2\2\u0223\u0221\3\2\2\2\u0223\u0224\3\2"
+ "\2\2\u0224\u0227\3\2\2\2\u0225\u0223\3\2\2\2\u0226\u0228\7\63\2\2\u0227"
+ "\u0226\3\2\2\2\u0227\u0228\3\2\2\2\u0228\u0229\3\2\2\2\u0229\u022b\b&"
+ "\1\2\u022a\u0214\3\2\2\2\u022a\u0223\3\2\2\2\u022bK\3\2\2\2\u022c\u0234"
+ "\5b\62\2\u022d\u0234\5N(\2\u022e\u0234\5R*\2\u022f\u0234\5Z.\2\u0230\u0234"
+ "\5^\60\2\u0231\u0234\5\64\33\2\u0232\u0234\5V,\2\u0233\u022c\3\2\2\2\u0233"
+ "\u022d\3\2\2\2\u0233\u022e\3\2\2\2\u0233\u022f\3\2\2\2\u0233\u0230\3\2"
+ "\2\2\u0233\u0231\3\2\2\2\u0233\u0232\3\2\2\2\u0234M\3\2\2\2\u0235\u0236"
+ "\7\26\2\2\u0236\u0237\7\61\2\2\u0237\u0238\5\u0080A\2\u0238\u0239\7\62"
+ "\2\2\u0239\u023d\5J&\2\u023a\u023c\5P)\2\u023b\u023a\3\2\2\2\u023c\u023f"
+ "\3\2\2\2\u023d\u023b\3\2\2\2\u023d\u023e\3\2\2\2\u023e\u0242\3\2\2\2\u023f"
+ "\u023d\3\2\2\2\u0240\u0241\7\r\2\2\u0241\u0243\5J&\2\u0242\u0240\3\2\2"
+ "\2\u0242\u0243\3\2\2\2\u0243\u0244\3\2\2\2\u0244\u0245\7\17\2\2\u0245"
+ "\u0246\7\26\2\2\u0246\u0266\3\2\2\2\u0247\u0249\7\26\2\2\u0248\u024a\7"
+ "\61\2\2\u0249\u0248\3\2\2\2\u024a\u024b\3\2\2\2\u024b\u0249\3\2\2\2\u024b"
+ "\u024c\3\2\2\2\u024c\u024d\3\2\2\2\u024d\u024f\5\u0080A\2\u024e\u0250"
+ "\7\62\2\2\u024f\u024e\3\2\2\2\u0250\u0251\3\2\2\2\u0251\u024f\3\2\2\2"
+ "\u0251\u0252\3\2\2\2\u0252\u0253\3\2\2\2\u0253\u0257\5J&\2\u0254\u0256"
+ "\5P)\2\u0255\u0254\3\2\2\2\u0256\u0259\3\2\2\2\u0257\u0255\3\2\2\2\u0257"
+ "\u0258\3\2\2\2\u0258\u025c\3\2\2\2\u0259\u0257\3\2\2\2\u025a\u025b\7\r"
+ "\2\2\u025b\u025d\5J&\2\u025c\u025a\3\2\2\2\u025c\u025d\3\2\2\2\u025d\u0261"
+ "\3\2\2\2\u025e\u025f\7\17\2\2\u025f\u0262\7\26\2\2\u0260\u0262\7P\2\2"
+ "\u0261\u025e\3\2\2\2\u0261\u0260\3\2\2\2\u0261\u0262\3\2\2\2\u0262\u0263"
+ "\3\2\2\2\u0263\u0264\b(\1\2\u0264\u0266\3\2\2\2\u0265\u0235\3\2\2\2\u0265"
+ "\u0247\3\2\2\2\u0266O\3\2\2\2\u0267\u0269\t\3\2\2\u0268\u026a\7\61\2\2"
+ "\u0269\u0268\3\2\2\2\u026a\u026b\3\2\2\2\u026b\u0269\3\2\2\2\u026b\u026c"
+ "\3\2\2\2\u026c\u026d\3\2\2\2\u026d\u026f\5\u0080A\2\u026e\u0270\7\62\2"
+ "\2\u026f\u026e\3\2\2\2\u0270\u0271\3\2\2\2\u0271\u026f\3\2\2\2\u0271\u0272"
+ "\3\2\2\2\u0272\u0273\3\2\2\2\u0273\u0274\5J&\2\u0274\u0275\b)\1\2\u0275"
+ "Q\3\2\2\2\u0276\u0277\5T+\2\u0277\u0278\7\64\2\2\u0278\u0279\5J&\2\u0279"
+ "\u027a\7\65\2\2\u027a\u028a\3\2\2\2\u027b\u027d\5T+\2\u027c\u027e\7\64"
+ "\2\2\u027d\u027c\3\2\2\2\u027e\u027f\3\2\2\2\u027f\u027d\3\2\2\2\u027f"
+ "\u0280\3\2\2\2\u0280\u0281\3\2\2\2\u0281\u0283\5J&\2\u0282\u0284\7\65"
+ "\2\2\u0283\u0282\3\2\2\2\u0284\u0285\3\2\2\2\u0285\u0283\3\2\2\2\u0285"
+ "\u0286\3\2\2\2\u0286\u0287\3\2\2\2\u0287\u0288\b*\1\2\u0288\u028a\3\2"
+ "\2\2\u0289\u0276\3\2\2\2\u0289\u027b\3\2\2\2\u028aS\3\2\2\2\u028b\u028c"
+ "\7\22\2\2\u028c\u028d\7\61\2\2\u028d\u028e\7R\2\2\u028e\u028f\7\66\2\2"
+ "\u028f\u0290\5.\30\2\u0290\u0291\7\27\2\2\u0291\u0292\5`\61\2\u0292\u0293"
+ "\7\62\2\2\u0293\u02a7\3\2\2\2\u0294\u0296\7\22\2\2\u0295\u0297\7\61\2"
+ "\2\u0296\u0295\3\2\2\2\u0297\u0298\3\2\2\2\u0298\u0296\3\2\2\2\u0298\u0299"
+ "\3\2\2\2\u0299\u029a\3\2\2\2\u029a\u029b\7R\2\2\u029b\u029c\7\66\2\2\u029c"
+ "\u029d\5.\30\2\u029d\u029e\7\27\2\2\u029e\u02a0\5`\61\2\u029f\u02a1\7"
+ "\62\2\2\u02a0\u029f\3\2\2\2\u02a1\u02a2\3\2\2\2\u02a2\u02a0\3\2\2\2\u02a2"
+ "\u02a3\3\2\2\2\u02a3\u02a4\3\2\2\2\u02a4\u02a5\b+\1\2\u02a5\u02a7\3\2"
+ "\2\2\u02a6\u028b\3\2\2\2\u02a6\u0294\3\2\2\2\u02a7U\3\2\2\2\u02a8\u02a9"
+ "\5X-\2\u02a9\u02aa\7\64\2\2\u02aa\u02ab\5J&\2\u02ab\u02ac\7\65\2\2\u02ac"
+ "\u02bc\3\2\2\2\u02ad\u02af\5X-\2\u02ae\u02b0\7\64\2\2\u02af\u02ae\3\2"
+ "\2\2\u02b0\u02b1\3\2\2\2\u02b1\u02af\3\2\2\2\u02b1\u02b2\3\2\2\2\u02b2"
+ "\u02b3\3\2\2\2\u02b3\u02b5\5J&\2\u02b4\u02b6\7\65\2\2\u02b5\u02b4\3\2"
+ "\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b5\3\2\2\2\u02b7\u02b8\3\2\2\2\u02b8"
+ "\u02b9\3\2\2\2\u02b9\u02ba\b,\1\2\u02ba\u02bc\3\2\2\2\u02bb\u02a8\3\2"
+ "\2\2\u02bb\u02ad\3\2\2\2\u02bcW\3\2\2\2\u02bd\u02be\7\23\2\2\u02be\u02bf"
+ "\7\61\2\2\u02bf\u02c0\7R\2\2\u02c0\u02c1\7\66\2\2\u02c1\u02c2\5.\30\2"
+ "\u02c2\u02c3\7\27\2\2\u02c3\u02c4\5`\61\2\u02c4\u02c5\7\62\2\2\u02c5\u02d9"
+ "\3\2\2\2\u02c6\u02c8\7\23\2\2\u02c7\u02c9\7\61\2\2\u02c8\u02c7\3\2\2\2"
+ "\u02c9\u02ca\3\2\2\2\u02ca\u02c8\3\2\2\2\u02ca\u02cb\3\2\2\2\u02cb\u02cc"
+ "\3\2\2\2\u02cc\u02cd\7R\2\2\u02cd\u02ce\7\66\2\2\u02ce\u02cf\5.\30\2\u02cf"
+ "\u02d0\7\27\2\2\u02d0\u02d2\5`\61\2\u02d1\u02d3\7\62\2\2\u02d2\u02d1\3"
+ "\2\2\2\u02d3\u02d4\3\2\2\2\u02d4\u02d2\3\2\2\2\u02d4\u02d5\3\2\2\2\u02d5"
+ "\u02d6\3\2\2\2\u02d6\u02d7\b-\1\2\u02d7\u02d9\3\2\2\2\u02d8\u02bd\3\2"
+ "\2\2\u02d8\u02c6\3\2\2\2\u02d9Y\3\2\2\2\u02da\u02db\5\\/\2\u02db\u02dc"
+ "\7\64\2\2\u02dc\u02dd\5J&\2\u02dd\u02de\7\65\2\2\u02de\u02ee\3\2\2\2\u02df"
+ "\u02e1\5\\/\2\u02e0\u02e2\7\64\2\2\u02e1\u02e0\3\2\2\2\u02e2\u02e3\3\2"
+ "\2\2\u02e3\u02e1\3\2\2\2\u02e3\u02e4\3\2\2\2\u02e4\u02e5\3\2\2\2\u02e5"
+ "\u02e7\5J&\2\u02e6\u02e8\7\65\2\2\u02e7\u02e6\3\2\2\2\u02e8\u02e9\3\2"
+ "\2\2\u02e9\u02e7\3\2\2\2\u02e9\u02ea\3\2\2\2\u02ea\u02eb\3\2\2\2\u02eb"
+ "\u02ec\b.\1\2\u02ec\u02ee\3\2\2\2\u02ed\u02da\3\2\2\2\u02ed\u02df\3\2"
+ "\2\2\u02ee[\3\2\2\2\u02ef\u02f0\7*\2\2\u02f0\u02f1\7\61\2\2\u02f1\u02f2"
+ "\5\u0080A\2\u02f2\u02f3\7\62\2\2\u02f3\u0303\3\2\2\2\u02f4\u02f6\7*\2"
+ "\2\u02f5\u02f7\7\61\2\2\u02f6\u02f5\3\2\2\2\u02f7\u02f8\3\2\2\2\u02f8"
+ "\u02f6\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9\u02fa\3\2\2\2\u02fa\u02fc\5\u0080"
+ "A\2\u02fb\u02fd\7\62\2\2\u02fc\u02fb\3\2\2\2\u02fd\u02fe\3\2\2\2\u02fe"
+ "\u02fc\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff\u0300\3\2\2\2\u0300\u0301\b/"
+ "\1\2\u0301\u0303\3\2\2\2\u0302\u02ef\3\2\2\2\u0302\u02f4\3\2\2\2\u0303"
+ "]\3\2\2\2\u0304\u0305\7\f\2\2\u0305\u0306\5J&\2\u0306\u0307\7(\2\2\u0307"
+ "\u0308\7\61\2\2\u0308\u0309\5\u0080A\2\u0309\u030a\7\62\2\2\u030a\u031c"
+ "\3\2\2\2\u030b\u030c\7\f\2\2\u030c\u030d\5J&\2\u030d\u030f\7(\2\2\u030e"
+ "\u0310\7\61\2\2\u030f\u030e\3\2\2\2\u0310\u0311\3\2\2\2\u0311\u030f\3"
+ "\2\2\2\u0311\u0312\3\2\2\2\u0312\u0313\3\2\2\2\u0313\u0315\5\u0080A\2"
+ "\u0314\u0316\7\62\2\2\u0315\u0314\3\2\2\2\u0316\u0317\3\2\2\2\u0317\u0315"
+ "\3\2\2\2\u0317\u0318\3\2\2\2\u0318\u0319\3\2\2\2\u0319\u031a\b\60\1\2"
+ "\u031a\u031c\3\2\2\2\u031b\u0304\3\2\2\2\u031b\u030b\3\2\2\2\u031c_\3"
+ "\2\2\2\u031d\u0320\5\u009cO\2\u031e\u0320\5v<\2\u031f\u031d\3\2\2\2\u031f"
+ "\u031e\3\2\2\2\u0320a\3\2\2\2\u0321\u0325\5d\63\2\u0322\u0325\5j\66\2"
+ "\u0323\u0325\5l\67\2\u0324\u0321\3\2\2\2\u0324\u0322\3\2\2\2\u0324\u0323"
+ "\3\2\2\2\u0325c\3\2\2\2\u0326\u0327\5f\64\2\u0327\u032a\t\4\2\2\u0328"
+ "\u032b\5\u0080A\2\u0329\u032b\7\5\2\2\u032a\u0328\3\2\2\2\u032a\u0329"
+ "\3\2\2\2\u032b\u032c\3\2\2\2\u032c\u032d\b\63\1\2\u032de\3\2\2\2\u032e"
+ "\u032f\5v<\2\u032fg\3\2\2\2\u0330\u0331\7R\2\2\u0331\u0332\7M\2\2\u0332"
+ "\u0334\b\65\1\2\u0333\u0330\3\2\2\2\u0334\u0335\3\2\2\2\u0335\u0333\3"
+ "\2\2\2\u0335\u0336\3\2\2\2\u0336\u0337\3\2\2\2\u0337\u0338\7R\2\2\u0338"
+ "\u033c\b\65\1\2\u0339\u033a\7>\2\2\u033a\u033b\7R\2\2\u033b\u033d\b\65"
+ "\1\2\u033c\u0339\3\2\2\2\u033c\u033d\3\2\2\2\u033di\3\2\2\2\u033e\u033f"
+ "\5h\65\2\u033f\u0344\79\2\2\u0340\u0341\7\61\2\2\u0341\u0342\5r:\2\u0342"
+ "\u0343\7\62\2\2\u0343\u0345\3\2\2\2\u0344\u0340\3\2\2\2\u0344\u0345\3"
+ "\2\2\2\u0345\u038c\3\2\2\2\u0346\u0376\5v<\2\u0347\u034c\7:\2\2\u0348"
+ "\u0349\7\61\2\2\u0349\u034a\5f\64\2\u034a\u034b\7\62\2\2\u034b\u034d\3"
+ "\2\2\2\u034c\u0348\3\2\2\2\u034c\u034d\3\2\2\2\u034d\u0377\3\2\2\2\u034e"
+ "\u0377\7;\2\2\u034f\u0377\7<\2\2\u0350\u0377\7=\2\2\u0351\u0356\79\2\2"
+ "\u0352\u0353\7\61\2\2\u0353\u0354\5r:\2\u0354\u0355\7\62\2\2\u0355\u0357"
+ "\3\2\2\2\u0356\u0352\3\2\2\2\u0356\u0357\3\2\2\2\u0357\u0377\3\2\2\2\u0358"
+ "\u0364\7:\2\2\u0359\u035b\7\61\2\2\u035a\u0359\3\2\2\2\u035b\u035c\3\2"
+ "\2\2\u035c\u035a\3\2\2\2\u035c\u035d\3\2\2\2\u035d\u035e\3\2\2\2\u035e"
+ "\u0360\5f\64\2\u035f\u0361\7\62\2\2\u0360\u035f\3\2\2\2\u0361\u0362\3"
+ "\2\2\2\u0362\u0360\3\2\2\2\u0362\u0363\3\2\2\2\u0363\u0365\3\2\2\2\u0364"
+ "\u035a\3\2\2\2\u0364\u0365\3\2\2\2\u0365\u0366\3\2\2\2\u0366\u0377\b\66"
+ "\1\2\u0367\u0373\79\2\2\u0368\u036a\7\61\2\2\u0369\u0368\3\2\2\2\u036a"
+ "\u036b\3\2\2\2\u036b\u0369\3\2\2\2\u036b\u036c\3\2\2\2\u036c\u036d\3\2"
+ "\2\2\u036d\u036f\5r:\2\u036e\u0370\7\62\2\2\u036f\u036e\3\2\2\2\u0370"
+ "\u0371\3\2\2\2\u0371\u036f\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0374\3\2"
+ "\2\2\u0373\u0369\3\2\2\2\u0373\u0374\3\2\2\2\u0374\u0375\3\2\2\2\u0375"
+ "\u0377\b\66\1\2\u0376\u0347\3\2\2\2\u0376\u034e\3\2\2\2\u0376\u034f\3"
+ "\2\2\2\u0376\u0350\3\2\2\2\u0376\u0351\3\2\2\2\u0376\u0358\3\2\2\2\u0376"
+ "\u0367\3\2\2\2\u0377\u038c\3\2\2\2\u0378\u0379\7H\2\2\u0379\u038c\t\5"
+ "\2\2\u037a\u037b\5h\65\2\u037b\u0387\79\2\2\u037c\u037e\7\61\2\2\u037d"
+ "\u037c\3\2\2\2\u037e\u037f\3\2\2\2\u037f\u037d\3\2\2\2\u037f\u0380\3\2"
+ "\2\2\u0380\u0381\3\2\2\2\u0381\u0383\5r:\2\u0382\u0384\7\62\2\2\u0383"
+ "\u0382\3\2\2\2\u0384\u0385\3\2\2\2\u0385\u0383\3\2\2\2\u0385\u0386\3\2"
+ "\2\2\u0386\u0388\3\2\2\2\u0387\u037d\3\2\2\2\u0387\u0388\3\2\2\2\u0388"
+ "\u0389\3\2\2\2\u0389\u038a\b\66\1\2\u038a\u038c\3\2\2\2\u038b\u033e\3"
+ "\2\2\2\u038b\u0346\3\2\2\2\u038b\u0378\3\2\2\2\u038b\u037a\3\2\2\2\u038c"
+ "k\3\2\2\2\u038d\u038e\7\t\2\2\u038e\u038f\7\61\2\2\u038f\u0392\5\u00a0"
+ "Q\2\u0390\u0391\7K\2\2\u0391\u0393\5\u00a0Q\2\u0392\u0390\3\2\2\2\u0392"
+ "\u0393\3\2\2\2\u0393\u0394\3\2\2\2\u0394\u0396\7\62\2\2\u0395\u0397\5"
+ "n8\2\u0396\u0395\3\2\2\2\u0396\u0397\3\2\2\2\u0397\u03ae\3\2\2\2\u0398"
+ "\u039a\7\t\2\2\u0399\u039b\7\61\2\2\u039a\u0399\3\2\2\2\u039b\u039c\3"
+ "\2\2\2\u039c\u039a\3\2\2\2\u039c\u039d\3\2\2\2\u039d\u039e\3\2\2\2\u039e"
+ "\u03a1\5\u00a0Q\2\u039f\u03a0\7K\2\2\u03a0\u03a2\5\u00a0Q\2\u03a1\u039f"
+ "\3\2\2\2\u03a1\u03a2\3\2\2\2\u03a2\u03a4\3\2\2\2\u03a3\u03a5\7\62\2\2"
+ "\u03a4\u03a3\3\2\2\2\u03a5\u03a6\3\2\2\2\u03a6\u03a4\3\2\2\2\u03a6\u03a7"
+ "\3\2\2\2\u03a7\u03a9\3\2\2\2\u03a8\u03aa\5n8\2\u03a9\u03a8\3\2\2\2\u03a9"
+ "\u03aa\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab\u03ac\b\67\1\2\u03ac\u03ae\3"
+ "\2\2\2\u03ad\u038d\3\2\2\2\u03ad\u0398\3\2\2\2\u03aem\3\2\2\2\u03af\u03b0"
+ "\7\27\2\2\u03b0\u03b1\7\6\2\2\u03b1\u03b2\7\61\2\2\u03b2\u03b3\5p9\2\u03b3"
+ "\u03b4\7\62\2\2\u03b4\u03c5\3\2\2\2\u03b5\u03b6\7\27\2\2\u03b6\u03b8\7"
+ "\6\2\2\u03b7\u03b9\7\61\2\2\u03b8\u03b7\3\2\2\2\u03b9\u03ba\3\2\2\2\u03ba"
+ "\u03b8\3\2\2\2\u03ba\u03bb\3\2\2\2\u03bb\u03bc\3\2\2\2\u03bc\u03be\5p"
+ "9\2\u03bd\u03bf\7\62\2\2\u03be\u03bd\3\2\2\2\u03bf\u03c0\3\2\2\2\u03c0"
+ "\u03be\3\2\2\2\u03c0\u03c1\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2\u03c3\b8"
+ "\1\2\u03c3\u03c5\3\2\2\2\u03c4\u03af\3\2\2\2\u03c4\u03b5\3\2\2\2\u03c5"
+ "o\3\2\2\2\u03c6\u03c7\5.\30\2\u03c7\u03d0\b9\1\2\u03c8\u03ca\7.\2\2\u03c9"
+ "\u03c8\3\2\2\2\u03c9\u03ca\3\2\2\2\u03ca\u03cb\3\2\2\2\u03cb\u03cc\5."
+ "\30\2\u03cc\u03cd\b9\1\2\u03cd\u03cf\3\2\2\2\u03ce\u03c9\3\2\2\2\u03cf"
+ "\u03d2\3\2\2\2\u03d0\u03ce\3\2\2\2\u03d0\u03d1\3\2\2\2\u03d1q\3\2\2\2"
+ "\u03d2\u03d0\3\2\2\2\u03d3\u03d4\5t;\2\u03d4\u03dd\b:\1\2\u03d5\u03d7"
+ "\7.\2\2\u03d6\u03d5\3\2\2\2\u03d6\u03d7\3\2\2\2\u03d7\u03d8\3\2\2\2\u03d8"
+ "\u03d9\5t;\2\u03d9\u03da\b:\1\2\u03da\u03dc\3\2\2\2\u03db\u03d6\3\2\2"
+ "\2\u03dc\u03df\3\2\2\2\u03dd\u03db\3\2\2\2\u03dd\u03de\3\2\2\2\u03des"
+ "\3\2\2\2\u03df\u03dd\3\2\2\2\u03e0\u03e1\5\u0080A\2\u03e1u\3\2\2\2\u03e2"
+ "\u03e7\5x=\2\u03e3\u03e4\7>\2\2\u03e4\u03e6\5x=\2\u03e5\u03e3\3\2\2\2"
+ "\u03e6\u03e9\3\2\2\2\u03e7\u03e5\3\2\2\2\u03e7\u03e8\3\2\2\2\u03e8w\3"
+ "\2\2\2\u03e9\u03e7\3\2\2\2\u03ea\u03f1\7R\2\2\u03eb\u03ec\7,\2\2\u03ec"
+ "\u03ed\5\u009eP\2\u03ed\u03ee\7-\2\2\u03ee\u03f0\3\2\2\2\u03ef\u03eb\3"
+ "\2\2\2\u03f0\u03f3\3\2\2\2\u03f1\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2"
+ "y\3\2\2\2\u03f3\u03f1\3\2\2\2\u03f4\u03f9\5\u00a6T\2\u03f5\u03f9\5\u00a2"
+ "R\2\u03f6\u03f9\5\u009aN\2\u03f7\u03f9\5\u00acW\2\u03f8\u03f4\3\2\2\2"
+ "\u03f8\u03f5\3\2\2\2\u03f8\u03f6\3\2\2\2\u03f8\u03f7\3\2\2\2\u03f9{\3"
+ "\2\2\2\u03fa\u040e\5z>\2\u03fb\u040e\5~@\2\u03fc\u03fd\7\61\2\2\u03fd"
+ "\u03fe\5\u0080A\2\u03fe\u03ff\7\62\2\2\u03ff\u040e\3\2\2\2\u0400\u0402"
+ "\7\61\2\2\u0401\u0400\3\2\2\2\u0402\u0403\3\2\2\2\u0403\u0401\3\2\2\2"
+ "\u0403\u0404\3\2\2\2\u0404\u0405\3\2\2\2\u0405\u0407\5\u0080A\2\u0406"
+ "\u0408\7\62\2\2\u0407\u0406\3\2\2\2\u0408\u0409\3\2\2\2\u0409\u0407\3"
+ "\2\2\2\u0409\u040a\3\2\2\2\u040a\u040b\3\2\2\2\u040b\u040c\b?\1\2\u040c"
+ "\u040e\3\2\2\2\u040d\u03fa\3\2\2\2\u040d\u03fb\3\2\2\2\u040d\u03fc\3\2"
+ "\2\2\u040d\u0401\3\2\2\2\u040e}\3\2\2\2\u040f\u0413\5v<\2\u0410\u0414"
+ "\7:\2\2\u0411\u0412\7?\2\2\u0412\u0414\t\6\2\2\u0413\u0410\3\2\2\2\u0413"
+ "\u0411\3\2\2\2\u0413\u0414\3\2\2\2\u0414\177\3\2\2\2\u0415\u041b\5\u0082"
+ "B\2\u0416\u0417\5\u008aF\2\u0417\u0418\5\u0082B\2\u0418\u041a\3\2\2\2"
+ "\u0419\u0416\3\2\2\2\u041a\u041d\3\2\2\2\u041b\u0419\3\2\2\2\u041b\u041c"
+ "\3\2\2\2\u041c\u0081\3\2\2\2\u041d\u041b\3\2\2\2\u041e\u0422\5\u0084C"
+ "\2\u041f\u0420\5\u008cG\2\u0420\u0421\5\u0084C\2\u0421\u0423\3\2\2\2\u0422"
+ "\u041f\3\2\2\2\u0422\u0423\3\2\2\2\u0423\u0083\3\2\2\2\u0424\u0426\5\u0090"
+ "I\2\u0425\u0424\3\2\2\2\u0425\u0426\3\2\2\2\u0426\u0427\3\2\2\2\u0427"
+ "\u042d\5\u0086D\2\u0428\u0429\5\u008eH\2\u0429\u042a\5\u0086D\2\u042a"
+ "\u042c\3\2\2\2\u042b\u0428\3\2\2\2\u042c\u042f\3\2\2\2\u042d\u042b\3\2"
+ "\2\2\u042d\u042e\3\2\2\2\u042e\u0085\3\2\2\2\u042f\u042d\3\2\2\2\u0430"
+ "\u0436\5\u0088E\2\u0431\u0432\5\u0092J\2\u0432\u0433\5\u0088E\2\u0433"
+ "\u0435\3\2\2\2\u0434\u0431\3\2\2\2\u0435\u0438\3\2\2\2\u0436\u0434\3\2"
+ "\2\2\u0436\u0437\3\2\2\2\u0437\u0087\3\2\2\2\u0438\u0436\3\2\2\2\u0439"
+ "\u043d\5|?\2\u043a\u043b\5\u0094K\2\u043b\u043c\5|?\2\u043c\u043e\3\2"
+ "\2\2\u043d\u043a\3\2\2\2\u043d\u043e\3\2\2\2\u043e\u0446\3\2\2\2\u043f"
+ "\u0440\5\u0096L\2\u0440\u0441\5|?\2\u0441\u0446\3\2\2\2\u0442\u0443\5"
+ "\u0098M\2\u0443\u0444\5|?\2\u0444\u0446\3\2\2\2\u0445\u0439\3\2\2\2\u0445"
+ "\u043f\3\2\2\2\u0445\u0442\3\2\2\2\u0446\u0089\3\2\2\2\u0447\u0448\t\7"
+ "\2\2\u0448\u008b\3\2\2\2\u0449\u0452\7@\2\2\u044a\u0452\7A\2\2\u044b\u0452"
+ "\7B\2\2\u044c\u0452\7C\2\2\u044d\u0452\7D\2\2\u044e\u0452\7E\2\2\u044f"
+ "\u0450\7O\2\2\u0450\u0452\bG\1\2\u0451\u0449\3\2\2\2\u0451\u044a\3\2\2"
+ "\2\u0451\u044b\3\2\2\2\u0451\u044c\3\2\2\2\u0451\u044d\3\2\2\2\u0451\u044e"
+ "\3\2\2\2\u0451\u044f\3\2\2\2\u0452\u008d\3\2\2\2\u0453\u0454\t\2\2\2\u0454"
+ "\u008f\3\2\2\2\u0455\u0456\t\2\2\2\u0456\u0091\3\2\2\2\u0457\u0458\t\b"
+ "\2\2\u0458\u0093\3\2\2\2\u0459\u045a\7J\2\2\u045a\u0095\3\2\2\2\u045b"
+ "\u045c\7\3\2\2\u045c\u0097\3\2\2\2\u045d\u045e\7\33\2\2\u045e\u0099\3"
+ "\2\2\2\u045f\u0460\t\t\2\2\u0460\u009b\3\2\2\2\u0461\u0462\5\u009eP\2"
+ "\u0462\u0463\7K\2\2\u0463\u0464\5\u009eP\2\u0464\u009d\3\2\2\2\u0465\u0468"
+ "\5<\37\2\u0466\u0468\5~@\2\u0467\u0465\3\2\2\2\u0467\u0466\3\2\2\2\u0468"
+ "\u009f\3\2\2\2\u0469\u046a\5\u009eP\2\u046a\u046b\7R\2\2\u046b\u00a1\3"
+ "\2\2\2\u046c\u046f\7N\2\2\u046d\u046e\7R\2\2\u046e\u0470\7M\2\2\u046f"
+ "\u046d\3\2\2\2\u046f\u0470\3\2\2\2\u0470\u0478\3\2\2\2\u0471\u0474\5h"
+ "\65\2\u0472\u0474\5v<\2\u0473\u0471\3\2\2\2\u0473\u0472\3\2\2\2\u0474"
+ "\u0475\3\2\2\2\u0475\u0476\7N\2\2\u0476\u0478\3\2\2\2\u0477\u046c\3\2"
+ "\2\2\u0477\u0473\3\2\2\2\u0478\u0479\3\2\2\2\u0479\u047e\5\u00a4S\2\u047a"
+ "\u047b\7>\2\2\u047b\u047d\5\u00a4S\2\u047c\u047a\3\2\2\2\u047d\u0480\3"
+ "\2\2\2\u047e\u047c\3\2\2\2\u047e\u047f\3\2\2\2\u047f\u00a3\3\2\2\2\u0480"
+ "\u047e\3\2\2\2\u0481\u048c\7R\2\2\u0482\u0483\7,\2\2\u0483\u0484\5\u009e"
+ "P\2\u0484\u0485\7-\2\2\u0485\u0487\3\2\2\2\u0486\u0482\3\2\2\2\u0487\u0488"
+ "\3\2\2\2\u0488\u0486\3\2\2\2\u0488\u0489\3\2\2\2\u0489\u048d\3\2\2\2\u048a"
+ "\u048b\7>\2\2\u048b\u048d\t\n\2\2\u048c\u0486\3\2\2\2\u048c\u048a\3\2"
+ "\2\2\u048c\u048d\3\2\2\2\u048d\u00a5\3\2\2\2\u048e\u0491\5\u00aaV\2\u048f"
+ "\u0491\5\u00a8U\2\u0490\u048e\3\2\2\2\u0490\u048f\3\2\2\2\u0491\u00a7"
+ "\3\2\2\2\u0492\u0493\7T\2\2\u0493\u0494\bU\1\2\u0494\u00a9\3\2\2\2\u0495"
+ "\u0496\7U\2\2\u0496\u0497\bV\1\2\u0497\u00ab\3\2\2\2\u0498\u0499\7S\2"
+ "\2\u0499\u00ad\3\2\2\2\u049a\u049b\7U\2\2\u049b\u049c\bX\1\2\u049c\u00af"
+ "\3\2\2\2\u0097\u00b4\u00b6\u00bc\u00be\u00c4\u00c6\u00cb\u00d2\u00d9\u00df"
+ "\u00e3\u00e6\u00f1\u0100\u010f\u0117\u012c\u013f\u0142\u0148\u014d\u0153"
+ "\u015a\u0162\u0169\u016f\u0174\u0177\u017a\u017e\u0187\u018a\u018f\u0195"
+ "\u019d\u01a0\u01a7\u01b0\u01b6\u01ba\u01c1\u01c3\u01c8\u01cc\u01d0\u01d6"
+ "\u01dd\u01e0\u01e5\u01e8\u01ef\u01f7\u01ff\u0207\u020d\u0214\u0218\u021c"
+ "\u0223\u0227\u022a\u0233\u023d\u0242\u024b\u0251\u0257\u025c\u0261\u0265"
+ "\u026b\u0271\u027f\u0285\u0289\u0298\u02a2\u02a6\u02b1\u02b7\u02bb\u02ca"
+ "\u02d4\u02d8\u02e3\u02e9\u02ed\u02f8\u02fe\u0302\u0311\u0317\u031b\u031f"
+ "\u0324\u032a\u0335\u033c\u0344\u034c\u0356\u035c\u0362\u0364\u036b\u0371"
+ "\u0373\u0376\u037f\u0385\u0387\u038b\u0392\u0396\u039c\u03a1\u03a6\u03a9"
+ "\u03ad\u03ba\u03c0\u03c4\u03c9\u03d0\u03d6\u03dd\u03e7\u03f1\u03f8\u0403"
+ "\u0409\u040d\u0413\u041b\u0422\u0425\u042d\u0436\u043d\u0445\u0451\u0467"
+ "\u046f\u0473\u0477\u047e\u0488\u048c\u0490";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}