# $ANTLR 3.5.2 sdl92.g 2020-01-17 13:43:14 import sys from antlr3 import * from antlr3.tree import * # for convenience in actions HIDDEN = BaseRecognizer.HIDDEN # token types EOF=-1 T__223=223 T__224=224 T__225=225 T__226=226 T__227=227 T__228=228 T__229=229 A=4 ACTION=5 ACTIVE=6 AGGREGATION=7 ALL=8 ALPHA=9 ALTERNATIVE=10 AND=11 ANSWER=12 ANY=13 APPEND=14 ARRAY=15 ASN1=16 ASNFILENAME=17 ASSIGN=18 ASSIG_OP=19 ASTERISK=20 B=21 BASE=22 BITSTR=23 BLOCK=24 C=25 CALL=26 CHANNEL=27 CHOICE=28 CIF=29 CLOSED_RANGE=30 COMMA=31 COMMENT=32 COMMENT2=33 COMPOSITE_STATE=34 CONDITIONAL=35 CONNECT=36 CONNECTION=37 CONSTANT=38 CONSTANTS=39 CREATE=40 D=41 DASH=42 DCL=43 DECISION=44 DEFAULT=45 DIGITS=46 DIV=47 DOT=48 E=49 ELSE=50 EMPTYSTR=51 END=52 ENDALTERNATIVE=53 ENDBLOCK=54 ENDCHANNEL=55 ENDCONNECTION=56 ENDDECISION=57 ENDFOR=58 ENDNEWTYPE=59 ENDPROCEDURE=60 ENDPROCESS=61 ENDSTATE=62 ENDSUBSTRUCTURE=63 ENDSYNTYPE=64 ENDSYSTEM=65 ENDTEXT=66 ENTRY_POINT=67 EQ=68 EXPONENT=69 EXPORT=70 EXPRESSION=71 EXTERNAL=72 Exponent=73 F=74 FALSE=75 FI=76 FIELD=77 FIELDS=78 FIELD_NAME=79 FLOAT=80 FLOAT2=81 FLOATING_LABEL=82 FOR=83 FPAR=84 FROM=85 G=86 GE=87 GEODE=88 GROUND=89 GT=90 H=91 HYPERLINK=92 I=93 ID=94 IF=95 IFTHENELSE=96 IMPLIES=97 IMPORT=98 IN=99 INFORMAL_TEXT=100 INOUT=101 INPUT=102 INPUTLIST=103 INPUT_NONE=104 INT=105 J=106 JOIN=107 K=108 KEEP=109 L=110 LABEL=111 LE=112 LITERAL=113 LT=114 L_BRACKET=115 L_PAREN=116 M=117 MANTISSA=118 MINUS_INFINITY=119 MOD=120 N=121 NEG=122 NEQ=123 NEWTYPE=124 NEXTSTATE=125 NONE=126 NOT=127 NUMBER_OF_INSTANCES=128 O=129 OCTSTR=130 OPEN_RANGE=131 OR=132 OUT=133 OUTPUT=134 OUTPUT_BODY=135 P=136 PARAM=137 PARAMNAMES=138 PARAMS=139 PAREN=140 PFPAR=141 PLUS=142 PLUS_INFINITY=143 POINT=144 PRIMARY=145 PRIORITY=146 PROCEDURE=147 PROCEDURE_CALL=148 PROCEDURE_NAME=149 PROCESS=150 PROVIDED=151 Q=152 QUESTION=153 R=154 RANGE=155 REFERENCED=156 REM=157 RESET=158 RETURN=159 RETURNS=160 ROUTE=161 R_BRACKET=162 R_PAREN=163 S=164 SAVE=165 SELECTOR=166 SEMI=167 SEQOF=168 SEQUENCE=169 SET=170 SIGNAL=171 SIGNALROUTE=172 SIGNAL_LIST=173 SORT=174 SPECIFIC=175 START=176 STATE=177 STATELIST=178 STATE_AGGREGATION=179 STATE_PARTITION_CONNECTION=180 STIMULUS=181 STOP=182 STOPIF=183 STR=184 STRING=185 STRUCT=186 SUBSTRUCTURE=187 SYNONYM=188 SYNONYM_LIST=189 SYNTYPE=190 SYSTEM=191 T=192 TASK=193 TASK_BODY=194 TERMINATOR=195 TEXT=196 TEXTAREA=197 TEXTAREA_CONTENT=198 THEN=199 THIS=200 TIMER=201 TO=202 TRANSITION=203 TRUE=204 TYPE=205 TYPE_INSTANCE=206 U=207 USE=208 V=209 VALUE=210 VARIABLE=211 VARIABLES=212 VIA=213 VIAPATH=214 VIEW=215 W=216 WITH=217 WS=218 X=219 XOR=220 Y=221 Z=222 # token names tokenNamesMap = { 0: "", 1: "", 2: "", 3: "", -1: "EOF", 223: "T__223", 224: "T__224", 225: "T__225", 226: "T__226", 227: "T__227", 228: "T__228", 229: "T__229", 4: "A", 5: "ACTION", 6: "ACTIVE", 7: "AGGREGATION", 8: "ALL", 9: "ALPHA", 10: "ALTERNATIVE", 11: "AND", 12: "ANSWER", 13: "ANY", 14: "APPEND", 15: "ARRAY", 16: "ASN1", 17: "ASNFILENAME", 18: "ASSIGN", 19: "ASSIG_OP", 20: "ASTERISK", 21: "B", 22: "BASE", 23: "BITSTR", 24: "BLOCK", 25: "C", 26: "CALL", 27: "CHANNEL", 28: "CHOICE", 29: "CIF", 30: "CLOSED_RANGE", 31: "COMMA", 32: "COMMENT", 33: "COMMENT2", 34: "COMPOSITE_STATE", 35: "CONDITIONAL", 36: "CONNECT", 37: "CONNECTION", 38: "CONSTANT", 39: "CONSTANTS", 40: "CREATE", 41: "D", 42: "DASH", 43: "DCL", 44: "DECISION", 45: "DEFAULT", 46: "DIGITS", 47: "DIV", 48: "DOT", 49: "E", 50: "ELSE", 51: "EMPTYSTR", 52: "END", 53: "ENDALTERNATIVE", 54: "ENDBLOCK", 55: "ENDCHANNEL", 56: "ENDCONNECTION", 57: "ENDDECISION", 58: "ENDFOR", 59: "ENDNEWTYPE", 60: "ENDPROCEDURE", 61: "ENDPROCESS", 62: "ENDSTATE", 63: "ENDSUBSTRUCTURE", 64: "ENDSYNTYPE", 65: "ENDSYSTEM", 66: "ENDTEXT", 67: "ENTRY_POINT", 68: "EQ", 69: "EXPONENT", 70: "EXPORT", 71: "EXPRESSION", 72: "EXTERNAL", 73: "Exponent", 74: "F", 75: "FALSE", 76: "FI", 77: "FIELD", 78: "FIELDS", 79: "FIELD_NAME", 80: "FLOAT", 81: "FLOAT2", 82: "FLOATING_LABEL", 83: "FOR", 84: "FPAR", 85: "FROM", 86: "G", 87: "GE", 88: "GEODE", 89: "GROUND", 90: "GT", 91: "H", 92: "HYPERLINK", 93: "I", 94: "ID", 95: "IF", 96: "IFTHENELSE", 97: "IMPLIES", 98: "IMPORT", 99: "IN", 100: "INFORMAL_TEXT", 101: "INOUT", 102: "INPUT", 103: "INPUTLIST", 104: "INPUT_NONE", 105: "INT", 106: "J", 107: "JOIN", 108: "K", 109: "KEEP", 110: "L", 111: "LABEL", 112: "LE", 113: "LITERAL", 114: "LT", 115: "L_BRACKET", 116: "L_PAREN", 117: "M", 118: "MANTISSA", 119: "MINUS_INFINITY", 120: "MOD", 121: "N", 122: "NEG", 123: "NEQ", 124: "NEWTYPE", 125: "NEXTSTATE", 126: "NONE", 127: "NOT", 128: "NUMBER_OF_INSTANCES", 129: "O", 130: "OCTSTR", 131: "OPEN_RANGE", 132: "OR", 133: "OUT", 134: "OUTPUT", 135: "OUTPUT_BODY", 136: "P", 137: "PARAM", 138: "PARAMNAMES", 139: "PARAMS", 140: "PAREN", 141: "PFPAR", 142: "PLUS", 143: "PLUS_INFINITY", 144: "POINT", 145: "PRIMARY", 146: "PRIORITY", 147: "PROCEDURE", 148: "PROCEDURE_CALL", 149: "PROCEDURE_NAME", 150: "PROCESS", 151: "PROVIDED", 152: "Q", 153: "QUESTION", 154: "R", 155: "RANGE", 156: "REFERENCED", 157: "REM", 158: "RESET", 159: "RETURN", 160: "RETURNS", 161: "ROUTE", 162: "R_BRACKET", 163: "R_PAREN", 164: "S", 165: "SAVE", 166: "SELECTOR", 167: "SEMI", 168: "SEQOF", 169: "SEQUENCE", 170: "SET", 171: "SIGNAL", 172: "SIGNALROUTE", 173: "SIGNAL_LIST", 174: "SORT", 175: "SPECIFIC", 176: "START", 177: "STATE", 178: "STATELIST", 179: "STATE_AGGREGATION", 180: "STATE_PARTITION_CONNECTION", 181: "STIMULUS", 182: "STOP", 183: "STOPIF", 184: "STR", 185: "STRING", 186: "STRUCT", 187: "SUBSTRUCTURE", 188: "SYNONYM", 189: "SYNONYM_LIST", 190: "SYNTYPE", 191: "SYSTEM", 192: "T", 193: "TASK", 194: "TASK_BODY", 195: "TERMINATOR", 196: "TEXT", 197: "TEXTAREA", 198: "TEXTAREA_CONTENT", 199: "THEN", 200: "THIS", 201: "TIMER", 202: "TO", 203: "TRANSITION", 204: "TRUE", 205: "TYPE", 206: "TYPE_INSTANCE", 207: "U", 208: "USE", 209: "V", 210: "VALUE", 211: "VARIABLE", 212: "VARIABLES", 213: "VIA", 214: "VIAPATH", 215: "VIEW", 216: "W", 217: "WITH", 218: "WS", 219: "X", 220: "XOR", 221: "Y", 222: "Z" } Token.registerTokenNamesMap(tokenNamesMap) # token names tokenNames = [ "", "", "", "", "A", "ACTION", "ACTIVE", "AGGREGATION", "ALL", "ALPHA", "ALTERNATIVE", "AND", "ANSWER", "ANY", "APPEND", "ARRAY", "ASN1", "ASNFILENAME", "ASSIGN", "ASSIG_OP", "ASTERISK", "B", "BASE", "BITSTR", "BLOCK", "C", "CALL", "CHANNEL", "CHOICE", "CIF", "CLOSED_RANGE", "COMMA", "COMMENT", "COMMENT2", "COMPOSITE_STATE", "CONDITIONAL", "CONNECT", "CONNECTION", "CONSTANT", "CONSTANTS", "CREATE", "D", "DASH", "DCL", "DECISION", "DEFAULT", "DIGITS", "DIV", "DOT", "E", "ELSE", "EMPTYSTR", "END", "ENDALTERNATIVE", "ENDBLOCK", "ENDCHANNEL", "ENDCONNECTION", "ENDDECISION", "ENDFOR", "ENDNEWTYPE", "ENDPROCEDURE", "ENDPROCESS", "ENDSTATE", "ENDSUBSTRUCTURE", "ENDSYNTYPE", "ENDSYSTEM", "ENDTEXT", "ENTRY_POINT", "EQ", "EXPONENT", "EXPORT", "EXPRESSION", "EXTERNAL", "Exponent", "F", "FALSE", "FI", "FIELD", "FIELDS", "FIELD_NAME", "FLOAT", "FLOAT2", "FLOATING_LABEL", "FOR", "FPAR", "FROM", "G", "GE", "GEODE", "GROUND", "GT", "H", "HYPERLINK", "I", "ID", "IF", "IFTHENELSE", "IMPLIES", "IMPORT", "IN", "INFORMAL_TEXT", "INOUT", "INPUT", "INPUTLIST", "INPUT_NONE", "INT", "J", "JOIN", "K", "KEEP", "L", "LABEL", "LE", "LITERAL", "LT", "L_BRACKET", "L_PAREN", "M", "MANTISSA", "MINUS_INFINITY", "MOD", "N", "NEG", "NEQ", "NEWTYPE", "NEXTSTATE", "NONE", "NOT", "NUMBER_OF_INSTANCES", "O", "OCTSTR", "OPEN_RANGE", "OR", "OUT", "OUTPUT", "OUTPUT_BODY", "P", "PARAM", "PARAMNAMES", "PARAMS", "PAREN", "PFPAR", "PLUS", "PLUS_INFINITY", "POINT", "PRIMARY", "PRIORITY", "PROCEDURE", "PROCEDURE_CALL", "PROCEDURE_NAME", "PROCESS", "PROVIDED", "Q", "QUESTION", "R", "RANGE", "REFERENCED", "REM", "RESET", "RETURN", "RETURNS", "ROUTE", "R_BRACKET", "R_PAREN", "S", "SAVE", "SELECTOR", "SEMI", "SEQOF", "SEQUENCE", "SET", "SIGNAL", "SIGNALROUTE", "SIGNAL_LIST", "SORT", "SPECIFIC", "START", "STATE", "STATELIST", "STATE_AGGREGATION", "STATE_PARTITION_CONNECTION", "STIMULUS", "STOP", "STOPIF", "STR", "STRING", "STRUCT", "SUBSTRUCTURE", "SYNONYM", "SYNONYM_LIST", "SYNTYPE", "SYSTEM", "T", "TASK", "TASK_BODY", "TERMINATOR", "TEXT", "TEXTAREA", "TEXTAREA_CONTENT", "THEN", "THIS", "TIMER", "TO", "TRANSITION", "TRUE", "TYPE", "TYPE_INSTANCE", "U", "USE", "V", "VALUE", "VARIABLE", "VARIABLES", "VIA", "VIAPATH", "VIEW", "W", "WITH", "WS", "X", "XOR", "Y", "Z", "'!'", "'(.'", "'*/'", "'->'", "'.)'", "'/* CIF'", "':'" ] class sdl92Parser(Parser): grammarFileName = "sdl92.g" api_version = 1 tokenNames = tokenNames def __init__(self, input, state=None, *args, **kwargs): if state is None: state = RecognizerSharedState() super().__init__(input, state, *args, **kwargs) self.dfa52 = self.DFA52( self, 52, eot = self.DFA52_eot, eof = self.DFA52_eof, min = self.DFA52_min, max = self.DFA52_max, accept = self.DFA52_accept, special = self.DFA52_special, transition = self.DFA52_transition ) self.dfa86 = self.DFA86( self, 86, eot = self.DFA86_eot, eof = self.DFA86_eof, min = self.DFA86_min, max = self.DFA86_max, accept = self.DFA86_accept, special = self.DFA86_special, transition = self.DFA86_transition ) self.dfa189 = self.DFA189( self, 189, eot = self.DFA189_eot, eof = self.DFA189_eof, min = self.DFA189_min, max = self.DFA189_max, accept = self.DFA189_accept, special = self.DFA189_special, transition = self.DFA189_transition ) self.delegates = [] self._adaptor = None self.adaptor = CommonTreeAdaptor() def getTreeAdaptor(self): return self._adaptor def setTreeAdaptor(self, adaptor): self._adaptor = adaptor adaptor = property(getTreeAdaptor, setTreeAdaptor) class pr_file_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "pr_file" # sdl92.g:146:1: pr_file : ( use_clause | system_definition | process_definition )+ ; def pr_file(self, ): retval = self.pr_file_return() retval.start = self.input.LT(1) root_0 = None use_clause1 = None system_definition2 = None process_definition3 = None try: try: # sdl92.g:147:9: ( ( use_clause | system_definition | process_definition )+ ) # sdl92.g:147:17: ( use_clause | system_definition | process_definition )+ pass root_0 = self._adaptor.nil() # sdl92.g:147:17: ( use_clause | system_definition | process_definition )+ cnt1 = 0 while True: #loop1 alt1 = 4 LA1 = self.input.LA(1) if LA1 in {228}: LA1_2 = self.input.LA(2) if (LA1_2 == KEEP) : alt1 = 1 elif (LA1_2 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt1 = 3 elif LA1 in {USE}: alt1 = 1 elif LA1 in {SYSTEM}: alt1 = 2 elif LA1 in {PROCESS}: alt1 = 3 if alt1 == 1: # sdl92.g:147:18: use_clause pass self._state.following.append(self.FOLLOW_use_clause_in_pr_file1375) use_clause1 = self.use_clause() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, use_clause1.tree) elif alt1 == 2: # sdl92.g:148:19: system_definition pass self._state.following.append(self.FOLLOW_system_definition_in_pr_file1395) system_definition2 = self.system_definition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, system_definition2.tree) elif alt1 == 3: # sdl92.g:149:19: process_definition pass self._state.following.append(self.FOLLOW_process_definition_in_pr_file1415) process_definition3 = self.process_definition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, process_definition3.tree) else: if cnt1 >= 1: break #loop1 if self._state.backtracking > 0: raise BacktrackingFailed eee = EarlyExitException(1, self.input) raise eee cnt1 += 1 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "pr_file" class system_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "system_definition" # sdl92.g:153:1: system_definition : SYSTEM system_name end ( entity_in_system )* ENDSYSTEM ( system_name )? end -> ^( SYSTEM system_name ( entity_in_system )* ) ; def system_definition(self, ): retval = self.system_definition_return() retval.start = self.input.LT(1) root_0 = None SYSTEM4 = None ENDSYSTEM8 = None system_name5 = None end6 = None entity_in_system7 = None system_name9 = None end10 = None SYSTEM4_tree = None ENDSYSTEM8_tree = None stream_SYSTEM = RewriteRuleTokenStream(self._adaptor, "token SYSTEM") stream_ENDSYSTEM = RewriteRuleTokenStream(self._adaptor, "token ENDSYSTEM") stream_entity_in_system = RewriteRuleSubtreeStream(self._adaptor, "rule entity_in_system") stream_system_name = RewriteRuleSubtreeStream(self._adaptor, "rule system_name") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:154:9: ( SYSTEM system_name end ( entity_in_system )* ENDSYSTEM ( system_name )? end -> ^( SYSTEM system_name ( entity_in_system )* ) ) # sdl92.g:154:17: SYSTEM system_name end ( entity_in_system )* ENDSYSTEM ( system_name )? end pass SYSTEM4 = self.match(self.input, SYSTEM, self.FOLLOW_SYSTEM_in_system_definition1449) if self._state.backtracking == 0: stream_SYSTEM.add(SYSTEM4) self._state.following.append(self.FOLLOW_system_name_in_system_definition1451) system_name5 = self.system_name() self._state.following.pop() if self._state.backtracking == 0: stream_system_name.add(system_name5.tree) self._state.following.append(self.FOLLOW_end_in_system_definition1453) end6 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end6.tree) # sdl92.g:155:17: ( entity_in_system )* while True: #loop2 alt2 = 2 LA2_0 = self.input.LA(1) if (LA2_0 in {BLOCK, CHANNEL, PROCEDURE, SIGNAL, 228}) : alt2 = 1 if alt2 == 1: # sdl92.g:155:17: entity_in_system pass self._state.following.append(self.FOLLOW_entity_in_system_in_system_definition1471) entity_in_system7 = self.entity_in_system() self._state.following.pop() if self._state.backtracking == 0: stream_entity_in_system.add(entity_in_system7.tree) else: break #loop2 ENDSYSTEM8 = self.match(self.input, ENDSYSTEM, self.FOLLOW_ENDSYSTEM_in_system_definition1490) if self._state.backtracking == 0: stream_ENDSYSTEM.add(ENDSYSTEM8) # sdl92.g:156:27: ( system_name )? alt3 = 2 LA3_0 = self.input.LA(1) if (LA3_0 == ID) : alt3 = 1 if alt3 == 1: # sdl92.g:156:27: system_name pass self._state.following.append(self.FOLLOW_system_name_in_system_definition1492) system_name9 = self.system_name() self._state.following.pop() if self._state.backtracking == 0: stream_system_name.add(system_name9.tree) self._state.following.append(self.FOLLOW_end_in_system_definition1495) end10 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end10.tree) # AST Rewrite # elements: SYSTEM, system_name, entity_in_system # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 157:9: -> ^( SYSTEM system_name ( entity_in_system )* ) # sdl92.g:157:17: ^( SYSTEM system_name ( entity_in_system )* ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_SYSTEM.nextNode() , root_1) self._adaptor.addChild(root_1, stream_system_name.nextTree()) # sdl92.g:157:38: ( entity_in_system )* while stream_entity_in_system.hasNext(): self._adaptor.addChild(root_1, stream_entity_in_system.nextTree()) stream_entity_in_system.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "system_definition" class use_clause_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "use_clause" # sdl92.g:161:1: use_clause : ( use_asn1 )? USE package_name ( '/' def_selection_list )? end -> ^( USE ( use_asn1 )? ( end )? package_name ( def_selection_list )? ) ; def use_clause(self, ): retval = self.use_clause_return() retval.start = self.input.LT(1) root_0 = None USE12 = None char_literal14 = None use_asn111 = None package_name13 = None def_selection_list15 = None end16 = None USE12_tree = None char_literal14_tree = None stream_DIV = RewriteRuleTokenStream(self._adaptor, "token DIV") stream_USE = RewriteRuleTokenStream(self._adaptor, "token USE") stream_use_asn1 = RewriteRuleSubtreeStream(self._adaptor, "rule use_asn1") stream_package_name = RewriteRuleSubtreeStream(self._adaptor, "rule package_name") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_def_selection_list = RewriteRuleSubtreeStream(self._adaptor, "rule def_selection_list") try: try: # sdl92.g:162:9: ( ( use_asn1 )? USE package_name ( '/' def_selection_list )? end -> ^( USE ( use_asn1 )? ( end )? package_name ( def_selection_list )? ) ) # sdl92.g:162:17: ( use_asn1 )? USE package_name ( '/' def_selection_list )? end pass # sdl92.g:162:17: ( use_asn1 )? alt4 = 2 LA4_0 = self.input.LA(1) if (LA4_0 == 228) : alt4 = 1 if alt4 == 1: # sdl92.g:162:17: use_asn1 pass self._state.following.append(self.FOLLOW_use_asn1_in_use_clause1551) use_asn111 = self.use_asn1() self._state.following.pop() if self._state.backtracking == 0: stream_use_asn1.add(use_asn111.tree) USE12 = self.match(self.input, USE, self.FOLLOW_USE_in_use_clause1570) if self._state.backtracking == 0: stream_USE.add(USE12) self._state.following.append(self.FOLLOW_package_name_in_use_clause1572) package_name13 = self.package_name() self._state.following.pop() if self._state.backtracking == 0: stream_package_name.add(package_name13.tree) # sdl92.g:164:17: ( '/' def_selection_list )? alt5 = 2 LA5_0 = self.input.LA(1) if (LA5_0 == DIV) : alt5 = 1 if alt5 == 1: # sdl92.g:164:18: '/' def_selection_list pass char_literal14 = self.match(self.input, DIV, self.FOLLOW_DIV_in_use_clause1591) if self._state.backtracking == 0: stream_DIV.add(char_literal14) self._state.following.append(self.FOLLOW_def_selection_list_in_use_clause1593) def_selection_list15 = self.def_selection_list() self._state.following.pop() if self._state.backtracking == 0: stream_def_selection_list.add(def_selection_list15.tree) self._state.following.append(self.FOLLOW_end_in_use_clause1614) end16 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end16.tree) # AST Rewrite # elements: USE, use_asn1, end, package_name, def_selection_list # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 166:9: -> ^( USE ( use_asn1 )? ( end )? package_name ( def_selection_list )? ) # sdl92.g:166:17: ^( USE ( use_asn1 )? ( end )? package_name ( def_selection_list )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_USE.nextNode() , root_1) # sdl92.g:166:23: ( use_asn1 )? if stream_use_asn1.hasNext(): self._adaptor.addChild(root_1, stream_use_asn1.nextTree()) stream_use_asn1.reset(); # sdl92.g:166:33: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); self._adaptor.addChild(root_1, stream_package_name.nextTree()) # sdl92.g:166:51: ( def_selection_list )? if stream_def_selection_list.hasNext(): self._adaptor.addChild(root_1, stream_def_selection_list.nextTree()) stream_def_selection_list.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "use_clause" class def_selection_list_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "def_selection_list" # sdl92.g:173:1: def_selection_list : ID ( ',' ! ID )* ; def def_selection_list(self, ): retval = self.def_selection_list_return() retval.start = self.input.LT(1) root_0 = None ID17 = None char_literal18 = None ID19 = None ID17_tree = None char_literal18_tree = None ID19_tree = None try: try: # sdl92.g:174:9: ( ID ( ',' ! ID )* ) # sdl92.g:174:17: ID ( ',' ! ID )* pass root_0 = self._adaptor.nil() ID17 = self.match(self.input, ID, self.FOLLOW_ID_in_def_selection_list1678) if self._state.backtracking == 0: ID17_tree = self._adaptor.createWithPayload(ID17) self._adaptor.addChild(root_0, ID17_tree) # sdl92.g:174:20: ( ',' ! ID )* while True: #loop6 alt6 = 2 LA6_0 = self.input.LA(1) if (LA6_0 == COMMA) : alt6 = 1 if alt6 == 1: # sdl92.g:174:21: ',' ! ID pass char_literal18 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_def_selection_list1681) ID19 = self.match(self.input, ID, self.FOLLOW_ID_in_def_selection_list1684) if self._state.backtracking == 0: ID19_tree = self._adaptor.createWithPayload(ID19) self._adaptor.addChild(root_0, ID19_tree) else: break #loop6 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "def_selection_list" class entity_in_system_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "entity_in_system" # sdl92.g:181:1: entity_in_system : ( signal_declaration | text_area | procedure | channel | block_definition ); def entity_in_system(self, ): retval = self.entity_in_system_return() retval.start = self.input.LT(1) root_0 = None signal_declaration20 = None text_area21 = None procedure22 = None channel23 = None block_definition24 = None try: try: # sdl92.g:182:9: ( signal_declaration | text_area | procedure | channel | block_definition ) alt7 = 5 LA7 = self.input.LA(1) if LA7 in {228}: LA7_1 = self.input.LA(2) if (self.synpred9_sdl92()) : alt7 = 1 elif (self.synpred10_sdl92()) : alt7 = 2 elif (self.synpred11_sdl92()) : alt7 = 3 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 7, 1, self.input) raise nvae elif LA7 in {SIGNAL}: alt7 = 1 elif LA7 in {PROCEDURE}: alt7 = 3 elif LA7 in {CHANNEL}: alt7 = 4 elif LA7 in {BLOCK}: alt7 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 7, 0, self.input) raise nvae if alt7 == 1: # sdl92.g:182:17: signal_declaration pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_signal_declaration_in_entity_in_system1720) signal_declaration20 = self.signal_declaration() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, signal_declaration20.tree) elif alt7 == 2: # sdl92.g:183:19: text_area pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_text_area_in_entity_in_system1740) text_area21 = self.text_area() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, text_area21.tree) elif alt7 == 3: # sdl92.g:184:19: procedure pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_procedure_in_entity_in_system1760) procedure22 = self.procedure() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, procedure22.tree) elif alt7 == 4: # sdl92.g:185:19: channel pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_channel_in_entity_in_system1780) channel23 = self.channel() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, channel23.tree) elif alt7 == 5: # sdl92.g:186:19: block_definition pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_block_definition_in_entity_in_system1800) block_definition24 = self.block_definition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, block_definition24.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "entity_in_system" class signal_declaration_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "signal_declaration" # sdl92.g:192:1: signal_declaration : ( paramnames )? SIGNAL signal_id ( input_params )? end -> ^( SIGNAL ( paramnames )? signal_id ( input_params )? ) ; def signal_declaration(self, ): retval = self.signal_declaration_return() retval.start = self.input.LT(1) root_0 = None SIGNAL26 = None paramnames25 = None signal_id27 = None input_params28 = None end29 = None SIGNAL26_tree = None stream_SIGNAL = RewriteRuleTokenStream(self._adaptor, "token SIGNAL") stream_paramnames = RewriteRuleSubtreeStream(self._adaptor, "rule paramnames") stream_input_params = RewriteRuleSubtreeStream(self._adaptor, "rule input_params") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_signal_id = RewriteRuleSubtreeStream(self._adaptor, "rule signal_id") try: try: # sdl92.g:193:9: ( ( paramnames )? SIGNAL signal_id ( input_params )? end -> ^( SIGNAL ( paramnames )? signal_id ( input_params )? ) ) # sdl92.g:193:17: ( paramnames )? SIGNAL signal_id ( input_params )? end pass # sdl92.g:193:17: ( paramnames )? alt8 = 2 LA8_0 = self.input.LA(1) if (LA8_0 == 228) : alt8 = 1 if alt8 == 1: # sdl92.g:193:17: paramnames pass self._state.following.append(self.FOLLOW_paramnames_in_signal_declaration1833) paramnames25 = self.paramnames() self._state.following.pop() if self._state.backtracking == 0: stream_paramnames.add(paramnames25.tree) SIGNAL26 = self.match(self.input, SIGNAL, self.FOLLOW_SIGNAL_in_signal_declaration1852) if self._state.backtracking == 0: stream_SIGNAL.add(SIGNAL26) self._state.following.append(self.FOLLOW_signal_id_in_signal_declaration1854) signal_id27 = self.signal_id() self._state.following.pop() if self._state.backtracking == 0: stream_signal_id.add(signal_id27.tree) # sdl92.g:194:34: ( input_params )? alt9 = 2 LA9_0 = self.input.LA(1) if (LA9_0 == L_PAREN) : alt9 = 1 if alt9 == 1: # sdl92.g:194:34: input_params pass self._state.following.append(self.FOLLOW_input_params_in_signal_declaration1856) input_params28 = self.input_params() self._state.following.pop() if self._state.backtracking == 0: stream_input_params.add(input_params28.tree) self._state.following.append(self.FOLLOW_end_in_signal_declaration1859) end29 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end29.tree) # AST Rewrite # elements: SIGNAL, paramnames, signal_id, input_params # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 195:9: -> ^( SIGNAL ( paramnames )? signal_id ( input_params )? ) # sdl92.g:195:17: ^( SIGNAL ( paramnames )? signal_id ( input_params )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_SIGNAL.nextNode() , root_1) # sdl92.g:195:26: ( paramnames )? if stream_paramnames.hasNext(): self._adaptor.addChild(root_1, stream_paramnames.nextTree()) stream_paramnames.reset(); self._adaptor.addChild(root_1, stream_signal_id.nextTree()) # sdl92.g:195:48: ( input_params )? if stream_input_params.hasNext(): self._adaptor.addChild(root_1, stream_input_params.nextTree()) stream_input_params.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "signal_declaration" class channel_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "channel" # sdl92.g:199:1: channel : CHANNEL channel_id ( route )+ ENDCHANNEL end -> ^( CHANNEL channel_id ( route )+ ) ; def channel(self, ): retval = self.channel_return() retval.start = self.input.LT(1) root_0 = None CHANNEL30 = None ENDCHANNEL33 = None channel_id31 = None route32 = None end34 = None CHANNEL30_tree = None ENDCHANNEL33_tree = None stream_CHANNEL = RewriteRuleTokenStream(self._adaptor, "token CHANNEL") stream_ENDCHANNEL = RewriteRuleTokenStream(self._adaptor, "token ENDCHANNEL") stream_route = RewriteRuleSubtreeStream(self._adaptor, "rule route") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_channel_id = RewriteRuleSubtreeStream(self._adaptor, "rule channel_id") try: try: # sdl92.g:200:9: ( CHANNEL channel_id ( route )+ ENDCHANNEL end -> ^( CHANNEL channel_id ( route )+ ) ) # sdl92.g:200:17: CHANNEL channel_id ( route )+ ENDCHANNEL end pass CHANNEL30 = self.match(self.input, CHANNEL, self.FOLLOW_CHANNEL_in_channel1918) if self._state.backtracking == 0: stream_CHANNEL.add(CHANNEL30) self._state.following.append(self.FOLLOW_channel_id_in_channel1920) channel_id31 = self.channel_id() self._state.following.pop() if self._state.backtracking == 0: stream_channel_id.add(channel_id31.tree) # sdl92.g:201:17: ( route )+ cnt10 = 0 while True: #loop10 alt10 = 2 LA10_0 = self.input.LA(1) if (LA10_0 == FROM) : alt10 = 1 if alt10 == 1: # sdl92.g:201:17: route pass self._state.following.append(self.FOLLOW_route_in_channel1938) route32 = self.route() self._state.following.pop() if self._state.backtracking == 0: stream_route.add(route32.tree) else: if cnt10 >= 1: break #loop10 if self._state.backtracking > 0: raise BacktrackingFailed eee = EarlyExitException(10, self.input) raise eee cnt10 += 1 ENDCHANNEL33 = self.match(self.input, ENDCHANNEL, self.FOLLOW_ENDCHANNEL_in_channel1957) if self._state.backtracking == 0: stream_ENDCHANNEL.add(ENDCHANNEL33) self._state.following.append(self.FOLLOW_end_in_channel1959) end34 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end34.tree) # AST Rewrite # elements: CHANNEL, channel_id, route # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 203:9: -> ^( CHANNEL channel_id ( route )+ ) # sdl92.g:203:17: ^( CHANNEL channel_id ( route )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_CHANNEL.nextNode() , root_1) self._adaptor.addChild(root_1, stream_channel_id.nextTree()) # sdl92.g:203:38: ( route )+ if not (stream_route.hasNext()): raise RewriteEarlyExitException() while stream_route.hasNext(): self._adaptor.addChild(root_1, stream_route.nextTree()) stream_route.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "channel" class route_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "route" # sdl92.g:207:1: route : FROM source_id TO dest_id WITH signal_id ( ',' signal_id )* end -> ^( ROUTE source_id dest_id ( signal_id )+ ) ; def route(self, ): retval = self.route_return() retval.start = self.input.LT(1) root_0 = None FROM35 = None TO37 = None WITH39 = None char_literal41 = None source_id36 = None dest_id38 = None signal_id40 = None signal_id42 = None end43 = None FROM35_tree = None TO37_tree = None WITH39_tree = None char_literal41_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_FROM = RewriteRuleTokenStream(self._adaptor, "token FROM") stream_TO = RewriteRuleTokenStream(self._adaptor, "token TO") stream_WITH = RewriteRuleTokenStream(self._adaptor, "token WITH") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_source_id = RewriteRuleSubtreeStream(self._adaptor, "rule source_id") stream_dest_id = RewriteRuleSubtreeStream(self._adaptor, "rule dest_id") stream_signal_id = RewriteRuleSubtreeStream(self._adaptor, "rule signal_id") try: try: # sdl92.g:208:9: ( FROM source_id TO dest_id WITH signal_id ( ',' signal_id )* end -> ^( ROUTE source_id dest_id ( signal_id )+ ) ) # sdl92.g:208:17: FROM source_id TO dest_id WITH signal_id ( ',' signal_id )* end pass FROM35 = self.match(self.input, FROM, self.FOLLOW_FROM_in_route2015) if self._state.backtracking == 0: stream_FROM.add(FROM35) self._state.following.append(self.FOLLOW_source_id_in_route2017) source_id36 = self.source_id() self._state.following.pop() if self._state.backtracking == 0: stream_source_id.add(source_id36.tree) TO37 = self.match(self.input, TO, self.FOLLOW_TO_in_route2019) if self._state.backtracking == 0: stream_TO.add(TO37) self._state.following.append(self.FOLLOW_dest_id_in_route2021) dest_id38 = self.dest_id() self._state.following.pop() if self._state.backtracking == 0: stream_dest_id.add(dest_id38.tree) WITH39 = self.match(self.input, WITH, self.FOLLOW_WITH_in_route2023) if self._state.backtracking == 0: stream_WITH.add(WITH39) self._state.following.append(self.FOLLOW_signal_id_in_route2025) signal_id40 = self.signal_id() self._state.following.pop() if self._state.backtracking == 0: stream_signal_id.add(signal_id40.tree) # sdl92.g:208:58: ( ',' signal_id )* while True: #loop11 alt11 = 2 LA11_0 = self.input.LA(1) if (LA11_0 == COMMA) : alt11 = 1 if alt11 == 1: # sdl92.g:208:59: ',' signal_id pass char_literal41 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_route2028) if self._state.backtracking == 0: stream_COMMA.add(char_literal41) self._state.following.append(self.FOLLOW_signal_id_in_route2030) signal_id42 = self.signal_id() self._state.following.pop() if self._state.backtracking == 0: stream_signal_id.add(signal_id42.tree) else: break #loop11 self._state.following.append(self.FOLLOW_end_in_route2034) end43 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end43.tree) # AST Rewrite # elements: source_id, dest_id, signal_id # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 209:9: -> ^( ROUTE source_id dest_id ( signal_id )+ ) # sdl92.g:209:17: ^( ROUTE source_id dest_id ( signal_id )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(ROUTE, "ROUTE") , root_1) self._adaptor.addChild(root_1, stream_source_id.nextTree()) self._adaptor.addChild(root_1, stream_dest_id.nextTree()) # sdl92.g:209:43: ( signal_id )+ if not (stream_signal_id.hasNext()): raise RewriteEarlyExitException() while stream_signal_id.hasNext(): self._adaptor.addChild(root_1, stream_signal_id.nextTree()) stream_signal_id.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "route" class block_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "block_definition" # sdl92.g:213:1: block_definition : BLOCK block_id end ( entity_in_block )* ENDBLOCK end -> ^( BLOCK block_id ( entity_in_block )* ) ; def block_definition(self, ): retval = self.block_definition_return() retval.start = self.input.LT(1) root_0 = None BLOCK44 = None ENDBLOCK48 = None block_id45 = None end46 = None entity_in_block47 = None end49 = None BLOCK44_tree = None ENDBLOCK48_tree = None stream_ENDBLOCK = RewriteRuleTokenStream(self._adaptor, "token ENDBLOCK") stream_BLOCK = RewriteRuleTokenStream(self._adaptor, "token BLOCK") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_entity_in_block = RewriteRuleSubtreeStream(self._adaptor, "rule entity_in_block") stream_block_id = RewriteRuleSubtreeStream(self._adaptor, "rule block_id") try: try: # sdl92.g:214:9: ( BLOCK block_id end ( entity_in_block )* ENDBLOCK end -> ^( BLOCK block_id ( entity_in_block )* ) ) # sdl92.g:214:17: BLOCK block_id end ( entity_in_block )* ENDBLOCK end pass BLOCK44 = self.match(self.input, BLOCK, self.FOLLOW_BLOCK_in_block_definition2092) if self._state.backtracking == 0: stream_BLOCK.add(BLOCK44) self._state.following.append(self.FOLLOW_block_id_in_block_definition2094) block_id45 = self.block_id() self._state.following.pop() if self._state.backtracking == 0: stream_block_id.add(block_id45.tree) self._state.following.append(self.FOLLOW_end_in_block_definition2096) end46 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end46.tree) # sdl92.g:215:17: ( entity_in_block )* while True: #loop12 alt12 = 2 LA12_0 = self.input.LA(1) if (LA12_0 in {BLOCK, CONNECT, PROCESS, SIGNAL, SIGNALROUTE, 228}) : alt12 = 1 if alt12 == 1: # sdl92.g:215:17: entity_in_block pass self._state.following.append(self.FOLLOW_entity_in_block_in_block_definition2114) entity_in_block47 = self.entity_in_block() self._state.following.pop() if self._state.backtracking == 0: stream_entity_in_block.add(entity_in_block47.tree) else: break #loop12 ENDBLOCK48 = self.match(self.input, ENDBLOCK, self.FOLLOW_ENDBLOCK_in_block_definition2133) if self._state.backtracking == 0: stream_ENDBLOCK.add(ENDBLOCK48) self._state.following.append(self.FOLLOW_end_in_block_definition2135) end49 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end49.tree) # AST Rewrite # elements: BLOCK, block_id, entity_in_block # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 217:9: -> ^( BLOCK block_id ( entity_in_block )* ) # sdl92.g:217:17: ^( BLOCK block_id ( entity_in_block )* ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_BLOCK.nextNode() , root_1) self._adaptor.addChild(root_1, stream_block_id.nextTree()) # sdl92.g:217:34: ( entity_in_block )* while stream_entity_in_block.hasNext(): self._adaptor.addChild(root_1, stream_entity_in_block.nextTree()) stream_entity_in_block.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "block_definition" class entity_in_block_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "entity_in_block" # sdl92.g:225:1: entity_in_block : ( signal_declaration | signalroute | connection | block_definition | process_definition ); def entity_in_block(self, ): retval = self.entity_in_block_return() retval.start = self.input.LT(1) root_0 = None signal_declaration50 = None signalroute51 = None connection52 = None block_definition53 = None process_definition54 = None try: try: # sdl92.g:226:9: ( signal_declaration | signalroute | connection | block_definition | process_definition ) alt13 = 5 LA13 = self.input.LA(1) if LA13 in {228}: LA13_1 = self.input.LA(2) if (LA13_1 == KEEP) : alt13 = 1 elif (LA13_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt13 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 13, 1, self.input) raise nvae elif LA13 in {SIGNAL}: alt13 = 1 elif LA13 in {SIGNALROUTE}: alt13 = 2 elif LA13 in {CONNECT}: alt13 = 3 elif LA13 in {BLOCK}: alt13 = 4 elif LA13 in {PROCESS}: alt13 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 13, 0, self.input) raise nvae if alt13 == 1: # sdl92.g:226:17: signal_declaration pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_signal_declaration_in_entity_in_block2193) signal_declaration50 = self.signal_declaration() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, signal_declaration50.tree) elif alt13 == 2: # sdl92.g:227:19: signalroute pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_signalroute_in_entity_in_block2213) signalroute51 = self.signalroute() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, signalroute51.tree) elif alt13 == 3: # sdl92.g:228:19: connection pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_connection_in_entity_in_block2233) connection52 = self.connection() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, connection52.tree) elif alt13 == 4: # sdl92.g:229:19: block_definition pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_block_definition_in_entity_in_block2253) block_definition53 = self.block_definition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, block_definition53.tree) elif alt13 == 5: # sdl92.g:230:19: process_definition pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_process_definition_in_entity_in_block2273) process_definition54 = self.process_definition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, process_definition54.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "entity_in_block" class signalroute_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "signalroute" # sdl92.g:234:1: signalroute : SIGNALROUTE route_id ( route )+ -> ^( SIGNALROUTE route_id ( route )+ ) ; def signalroute(self, ): retval = self.signalroute_return() retval.start = self.input.LT(1) root_0 = None SIGNALROUTE55 = None route_id56 = None route57 = None SIGNALROUTE55_tree = None stream_SIGNALROUTE = RewriteRuleTokenStream(self._adaptor, "token SIGNALROUTE") stream_route_id = RewriteRuleSubtreeStream(self._adaptor, "rule route_id") stream_route = RewriteRuleSubtreeStream(self._adaptor, "rule route") try: try: # sdl92.g:235:9: ( SIGNALROUTE route_id ( route )+ -> ^( SIGNALROUTE route_id ( route )+ ) ) # sdl92.g:235:17: SIGNALROUTE route_id ( route )+ pass SIGNALROUTE55 = self.match(self.input, SIGNALROUTE, self.FOLLOW_SIGNALROUTE_in_signalroute2305) if self._state.backtracking == 0: stream_SIGNALROUTE.add(SIGNALROUTE55) self._state.following.append(self.FOLLOW_route_id_in_signalroute2307) route_id56 = self.route_id() self._state.following.pop() if self._state.backtracking == 0: stream_route_id.add(route_id56.tree) # sdl92.g:236:17: ( route )+ cnt14 = 0 while True: #loop14 alt14 = 2 LA14_0 = self.input.LA(1) if (LA14_0 == FROM) : alt14 = 1 if alt14 == 1: # sdl92.g:236:17: route pass self._state.following.append(self.FOLLOW_route_in_signalroute2325) route57 = self.route() self._state.following.pop() if self._state.backtracking == 0: stream_route.add(route57.tree) else: if cnt14 >= 1: break #loop14 if self._state.backtracking > 0: raise BacktrackingFailed eee = EarlyExitException(14, self.input) raise eee cnt14 += 1 # AST Rewrite # elements: SIGNALROUTE, route_id, route # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 237:9: -> ^( SIGNALROUTE route_id ( route )+ ) # sdl92.g:237:17: ^( SIGNALROUTE route_id ( route )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_SIGNALROUTE.nextNode() , root_1) self._adaptor.addChild(root_1, stream_route_id.nextTree()) # sdl92.g:237:40: ( route )+ if not (stream_route.hasNext()): raise RewriteEarlyExitException() while stream_route.hasNext(): self._adaptor.addChild(root_1, stream_route.nextTree()) stream_route.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "signalroute" class connection_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "connection" # sdl92.g:241:1: connection : CONNECT channel_id AND route_id end -> ^( CONNECTION channel_id route_id ) ; def connection(self, ): retval = self.connection_return() retval.start = self.input.LT(1) root_0 = None CONNECT58 = None AND60 = None channel_id59 = None route_id61 = None end62 = None CONNECT58_tree = None AND60_tree = None stream_AND = RewriteRuleTokenStream(self._adaptor, "token AND") stream_CONNECT = RewriteRuleTokenStream(self._adaptor, "token CONNECT") stream_route_id = RewriteRuleSubtreeStream(self._adaptor, "rule route_id") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_channel_id = RewriteRuleSubtreeStream(self._adaptor, "rule channel_id") try: try: # sdl92.g:242:9: ( CONNECT channel_id AND route_id end -> ^( CONNECTION channel_id route_id ) ) # sdl92.g:242:17: CONNECT channel_id AND route_id end pass CONNECT58 = self.match(self.input, CONNECT, self.FOLLOW_CONNECT_in_connection2382) if self._state.backtracking == 0: stream_CONNECT.add(CONNECT58) self._state.following.append(self.FOLLOW_channel_id_in_connection2384) channel_id59 = self.channel_id() self._state.following.pop() if self._state.backtracking == 0: stream_channel_id.add(channel_id59.tree) AND60 = self.match(self.input, AND, self.FOLLOW_AND_in_connection2386) if self._state.backtracking == 0: stream_AND.add(AND60) self._state.following.append(self.FOLLOW_route_id_in_connection2388) route_id61 = self.route_id() self._state.following.pop() if self._state.backtracking == 0: stream_route_id.add(route_id61.tree) self._state.following.append(self.FOLLOW_end_in_connection2390) end62 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end62.tree) # AST Rewrite # elements: channel_id, route_id # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 243:9: -> ^( CONNECTION channel_id route_id ) # sdl92.g:243:17: ^( CONNECTION channel_id route_id ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(CONNECTION, "CONNECTION") , root_1) self._adaptor.addChild(root_1, stream_channel_id.nextTree()) self._adaptor.addChild(root_1, stream_route_id.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "connection" class process_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "process_definition" # sdl92.g:255:1: process_definition : ( cif )? PROCESS (t= TYPE )? process_id ( number_of_instances )? ( ':' type_inst )? ( REFERENCED )? a= end ( pfpar )? ( text_area | procedure | ( composite_state_preamble )=> composite_state )* ( processBody )? ( ENDPROCESS )? ( TYPE )? ( process_id )? ( end )? -> ^( PROCESS ( cif )? process_id ( number_of_instances )? ( type_inst )? ( $t)? ( REFERENCED )? ( $a)? ( pfpar )? ( text_area )* ( procedure )* ( composite_state )* ( processBody )? ) ; def process_definition(self, ): retval = self.process_definition_return() retval.start = self.input.LT(1) root_0 = None t = None PROCESS64 = None char_literal67 = None REFERENCED69 = None ENDPROCESS75 = None TYPE76 = None a = None cif63 = None process_id65 = None number_of_instances66 = None type_inst68 = None pfpar70 = None text_area71 = None procedure72 = None composite_state73 = None processBody74 = None process_id77 = None end78 = None t_tree = None PROCESS64_tree = None char_literal67_tree = None REFERENCED69_tree = None ENDPROCESS75_tree = None TYPE76_tree = None stream_PROCESS = RewriteRuleTokenStream(self._adaptor, "token PROCESS") stream_229 = RewriteRuleTokenStream(self._adaptor, "token 229") stream_ENDPROCESS = RewriteRuleTokenStream(self._adaptor, "token ENDPROCESS") stream_TYPE = RewriteRuleTokenStream(self._adaptor, "token TYPE") stream_REFERENCED = RewriteRuleTokenStream(self._adaptor, "token REFERENCED") stream_text_area = RewriteRuleSubtreeStream(self._adaptor, "rule text_area") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_process_id = RewriteRuleSubtreeStream(self._adaptor, "rule process_id") stream_pfpar = RewriteRuleSubtreeStream(self._adaptor, "rule pfpar") stream_processBody = RewriteRuleSubtreeStream(self._adaptor, "rule processBody") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_type_inst = RewriteRuleSubtreeStream(self._adaptor, "rule type_inst") stream_procedure = RewriteRuleSubtreeStream(self._adaptor, "rule procedure") stream_composite_state = RewriteRuleSubtreeStream(self._adaptor, "rule composite_state") stream_number_of_instances = RewriteRuleSubtreeStream(self._adaptor, "rule number_of_instances") try: try: # sdl92.g:256:9: ( ( cif )? PROCESS (t= TYPE )? process_id ( number_of_instances )? ( ':' type_inst )? ( REFERENCED )? a= end ( pfpar )? ( text_area | procedure | ( composite_state_preamble )=> composite_state )* ( processBody )? ( ENDPROCESS )? ( TYPE )? ( process_id )? ( end )? -> ^( PROCESS ( cif )? process_id ( number_of_instances )? ( type_inst )? ( $t)? ( REFERENCED )? ( $a)? ( pfpar )? ( text_area )* ( procedure )* ( composite_state )* ( processBody )? ) ) # sdl92.g:256:17: ( cif )? PROCESS (t= TYPE )? process_id ( number_of_instances )? ( ':' type_inst )? ( REFERENCED )? a= end ( pfpar )? ( text_area | procedure | ( composite_state_preamble )=> composite_state )* ( processBody )? ( ENDPROCESS )? ( TYPE )? ( process_id )? ( end )? pass # sdl92.g:256:17: ( cif )? alt15 = 2 LA15_0 = self.input.LA(1) if (LA15_0 == 228) : alt15 = 1 if alt15 == 1: # sdl92.g:256:17: cif pass self._state.following.append(self.FOLLOW_cif_in_process_definition2447) cif63 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif63.tree) PROCESS64 = self.match(self.input, PROCESS, self.FOLLOW_PROCESS_in_process_definition2466) if self._state.backtracking == 0: stream_PROCESS.add(PROCESS64) # sdl92.g:257:26: (t= TYPE )? alt16 = 2 LA16_0 = self.input.LA(1) if (LA16_0 == TYPE) : alt16 = 1 if alt16 == 1: # sdl92.g:257:26: t= TYPE pass t = self.match(self.input, TYPE, self.FOLLOW_TYPE_in_process_definition2470) if self._state.backtracking == 0: stream_TYPE.add(t) self._state.following.append(self.FOLLOW_process_id_in_process_definition2473) process_id65 = self.process_id() self._state.following.pop() if self._state.backtracking == 0: stream_process_id.add(process_id65.tree) # sdl92.g:258:17: ( number_of_instances )? alt17 = 2 LA17_0 = self.input.LA(1) if (LA17_0 == L_PAREN) : alt17 = 1 if alt17 == 1: # sdl92.g:258:17: number_of_instances pass self._state.following.append(self.FOLLOW_number_of_instances_in_process_definition2491) number_of_instances66 = self.number_of_instances() self._state.following.pop() if self._state.backtracking == 0: stream_number_of_instances.add(number_of_instances66.tree) # sdl92.g:258:38: ( ':' type_inst )? alt18 = 2 LA18_0 = self.input.LA(1) if (LA18_0 == 229) : alt18 = 1 if alt18 == 1: # sdl92.g:258:39: ':' type_inst pass char_literal67 = self.match(self.input, 229, self.FOLLOW_229_in_process_definition2495) if self._state.backtracking == 0: stream_229.add(char_literal67) self._state.following.append(self.FOLLOW_type_inst_in_process_definition2497) type_inst68 = self.type_inst() self._state.following.pop() if self._state.backtracking == 0: stream_type_inst.add(type_inst68.tree) # sdl92.g:258:55: ( REFERENCED )? alt19 = 2 LA19_0 = self.input.LA(1) if (LA19_0 == REFERENCED) : alt19 = 1 if alt19 == 1: # sdl92.g:258:55: REFERENCED pass REFERENCED69 = self.match(self.input, REFERENCED, self.FOLLOW_REFERENCED_in_process_definition2501) if self._state.backtracking == 0: stream_REFERENCED.add(REFERENCED69) self._state.following.append(self.FOLLOW_end_in_process_definition2506) a = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(a.tree) # sdl92.g:259:17: ( pfpar )? alt20 = 2 LA20_0 = self.input.LA(1) if (LA20_0 == FPAR) : alt20 = 1 if alt20 == 1: # sdl92.g:259:17: pfpar pass self._state.following.append(self.FOLLOW_pfpar_in_process_definition2524) pfpar70 = self.pfpar() self._state.following.pop() if self._state.backtracking == 0: stream_pfpar.add(pfpar70.tree) # sdl92.g:260:17: ( text_area | procedure | ( composite_state_preamble )=> composite_state )* while True: #loop21 alt21 = 4 LA21 = self.input.LA(1) if LA21 in {228}: LA21_1 = self.input.LA(2) if (self.synpred29_sdl92()) : alt21 = 1 elif (self.synpred30_sdl92()) : alt21 = 2 elif LA21 in {STATE}: LA21_3 = self.input.LA(2) if (self.synpred31_sdl92()) : alt21 = 3 elif LA21 in {PROCEDURE}: alt21 = 2 if alt21 == 1: # sdl92.g:260:18: text_area pass self._state.following.append(self.FOLLOW_text_area_in_process_definition2544) text_area71 = self.text_area() self._state.following.pop() if self._state.backtracking == 0: stream_text_area.add(text_area71.tree) elif alt21 == 2: # sdl92.g:260:30: procedure pass self._state.following.append(self.FOLLOW_procedure_in_process_definition2548) procedure72 = self.procedure() self._state.following.pop() if self._state.backtracking == 0: stream_procedure.add(procedure72.tree) elif alt21 == 3: # sdl92.g:260:42: ( composite_state_preamble )=> composite_state pass self._state.following.append(self.FOLLOW_composite_state_in_process_definition2557) composite_state73 = self.composite_state() self._state.following.pop() if self._state.backtracking == 0: stream_composite_state.add(composite_state73.tree) else: break #loop21 # sdl92.g:261:17: ( processBody )? alt22 = 2 LA22 = self.input.LA(1) if LA22 in {228}: LA22_1 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {CONNECTION, START, STATE}: alt22 = 1 elif LA22 in {ENDPROCESS}: LA22_3 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {TYPE}: LA22_4 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {ID}: LA22_5 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {COMMENT}: LA22_6 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {SEMI}: LA22_7 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {EOF}: LA22_8 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {USE}: LA22_9 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {SYSTEM}: LA22_10 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {PROCESS}: LA22_11 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {ENDBLOCK}: LA22_12 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {SIGNAL}: LA22_13 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {SIGNALROUTE}: LA22_14 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {CONNECT}: LA22_15 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 elif LA22 in {BLOCK}: LA22_16 = self.input.LA(2) if (self.synpred32_sdl92()) : alt22 = 1 if alt22 == 1: # sdl92.g:261:17: processBody pass self._state.following.append(self.FOLLOW_processBody_in_process_definition2577) processBody74 = self.processBody() self._state.following.pop() if self._state.backtracking == 0: stream_processBody.add(processBody74.tree) # sdl92.g:261:30: ( ENDPROCESS )? alt23 = 2 LA23_0 = self.input.LA(1) if (LA23_0 == ENDPROCESS) : alt23 = 1 if alt23 == 1: # sdl92.g:261:30: ENDPROCESS pass ENDPROCESS75 = self.match(self.input, ENDPROCESS, self.FOLLOW_ENDPROCESS_in_process_definition2580) if self._state.backtracking == 0: stream_ENDPROCESS.add(ENDPROCESS75) # sdl92.g:261:42: ( TYPE )? alt24 = 2 LA24_0 = self.input.LA(1) if (LA24_0 == TYPE) : alt24 = 1 if alt24 == 1: # sdl92.g:261:42: TYPE pass TYPE76 = self.match(self.input, TYPE, self.FOLLOW_TYPE_in_process_definition2583) if self._state.backtracking == 0: stream_TYPE.add(TYPE76) # sdl92.g:261:48: ( process_id )? alt25 = 2 LA25_0 = self.input.LA(1) if (LA25_0 == ID) : alt25 = 1 if alt25 == 1: # sdl92.g:261:48: process_id pass self._state.following.append(self.FOLLOW_process_id_in_process_definition2586) process_id77 = self.process_id() self._state.following.pop() if self._state.backtracking == 0: stream_process_id.add(process_id77.tree) # sdl92.g:262:17: ( end )? alt26 = 2 LA26_0 = self.input.LA(1) if (LA26_0 == 228) : LA26_1 = self.input.LA(2) if (LA26_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA26_4 = self.input.LA(3) if (LA26_4 == L_PAREN) : LA26_6 = self.input.LA(4) if (LA26_6 == DASH) : LA26_8 = self.input.LA(5) if (LA26_8 == INT) : LA26_9 = self.input.LA(6) if (LA26_9 == COMMA) : LA26_11 = self.input.LA(7) if (LA26_11 == DASH) : LA26_12 = self.input.LA(8) if (LA26_12 == INT) : LA26_13 = self.input.LA(9) if (LA26_13 == R_PAREN) : LA26_14 = self.input.LA(10) if (LA26_14 == COMMA) : LA26_15 = self.input.LA(11) if (LA26_15 == L_PAREN) : LA26_16 = self.input.LA(12) if (LA26_16 == INT) : LA26_17 = self.input.LA(13) if (LA26_17 == COMMA) : LA26_18 = self.input.LA(14) if (LA26_18 == INT) : LA26_19 = self.input.LA(15) if (LA26_19 == R_PAREN) : LA26_20 = self.input.LA(16) if (LA26_20 == 225) : LA26_21 = self.input.LA(17) if (LA26_21 in {COMMENT, 228}) : alt26 = 1 elif (LA26_11 == INT) : LA26_13 = self.input.LA(8) if (LA26_13 == R_PAREN) : LA26_14 = self.input.LA(9) if (LA26_14 == COMMA) : LA26_15 = self.input.LA(10) if (LA26_15 == L_PAREN) : LA26_16 = self.input.LA(11) if (LA26_16 == INT) : LA26_17 = self.input.LA(12) if (LA26_17 == COMMA) : LA26_18 = self.input.LA(13) if (LA26_18 == INT) : LA26_19 = self.input.LA(14) if (LA26_19 == R_PAREN) : LA26_20 = self.input.LA(15) if (LA26_20 == 225) : LA26_21 = self.input.LA(16) if (LA26_21 in {COMMENT, 228}) : alt26 = 1 elif (LA26_6 == INT) : LA26_9 = self.input.LA(5) if (LA26_9 == COMMA) : LA26_11 = self.input.LA(6) if (LA26_11 == DASH) : LA26_12 = self.input.LA(7) if (LA26_12 == INT) : LA26_13 = self.input.LA(8) if (LA26_13 == R_PAREN) : LA26_14 = self.input.LA(9) if (LA26_14 == COMMA) : LA26_15 = self.input.LA(10) if (LA26_15 == L_PAREN) : LA26_16 = self.input.LA(11) if (LA26_16 == INT) : LA26_17 = self.input.LA(12) if (LA26_17 == COMMA) : LA26_18 = self.input.LA(13) if (LA26_18 == INT) : LA26_19 = self.input.LA(14) if (LA26_19 == R_PAREN) : LA26_20 = self.input.LA(15) if (LA26_20 == 225) : LA26_21 = self.input.LA(16) if (LA26_21 in {COMMENT, 228}) : alt26 = 1 elif (LA26_11 == INT) : LA26_13 = self.input.LA(7) if (LA26_13 == R_PAREN) : LA26_14 = self.input.LA(8) if (LA26_14 == COMMA) : LA26_15 = self.input.LA(9) if (LA26_15 == L_PAREN) : LA26_16 = self.input.LA(10) if (LA26_16 == INT) : LA26_17 = self.input.LA(11) if (LA26_17 == COMMA) : LA26_18 = self.input.LA(12) if (LA26_18 == INT) : LA26_19 = self.input.LA(13) if (LA26_19 == R_PAREN) : LA26_20 = self.input.LA(14) if (LA26_20 == 225) : LA26_21 = self.input.LA(15) if (LA26_21 in {COMMENT, 228}) : alt26 = 1 elif (LA26_1 == KEEP) : LA26_5 = self.input.LA(3) if (LA26_5 == SPECIFIC) : LA26_7 = self.input.LA(4) if (LA26_7 == GEODE) : LA26_10 = self.input.LA(5) if (LA26_10 == HYPERLINK) : alt26 = 1 elif (LA26_0 in {COMMENT, SEMI}) : alt26 = 1 if alt26 == 1: # sdl92.g:262:17: end pass self._state.following.append(self.FOLLOW_end_in_process_definition2605) end78 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end78.tree) # AST Rewrite # elements: PROCESS, cif, process_id, number_of_instances, type_inst, t, REFERENCED, a, pfpar, text_area, procedure, composite_state, processBody # token labels: t # rule labels: a, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 stream_t = RewriteRuleTokenStream(self._adaptor, "token t", t) if a is not None: stream_a = RewriteRuleSubtreeStream(self._adaptor, "rule a", a.tree) else: stream_a = RewriteRuleSubtreeStream(self._adaptor, "token a", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 263:9: -> ^( PROCESS ( cif )? process_id ( number_of_instances )? ( type_inst )? ( $t)? ( REFERENCED )? ( $a)? ( pfpar )? ( text_area )* ( procedure )* ( composite_state )* ( processBody )? ) # sdl92.g:263:17: ^( PROCESS ( cif )? process_id ( number_of_instances )? ( type_inst )? ( $t)? ( REFERENCED )? ( $a)? ( pfpar )? ( text_area )* ( procedure )* ( composite_state )* ( processBody )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_PROCESS.nextNode() , root_1) # sdl92.g:263:27: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); self._adaptor.addChild(root_1, stream_process_id.nextTree()) # sdl92.g:263:43: ( number_of_instances )? if stream_number_of_instances.hasNext(): self._adaptor.addChild(root_1, stream_number_of_instances.nextTree()) stream_number_of_instances.reset(); # sdl92.g:263:64: ( type_inst )? if stream_type_inst.hasNext(): self._adaptor.addChild(root_1, stream_type_inst.nextTree()) stream_type_inst.reset(); # sdl92.g:264:18: ( $t)? if stream_t.hasNext(): self._adaptor.addChild(root_1, stream_t.nextNode()) stream_t.reset(); # sdl92.g:264:21: ( REFERENCED )? if stream_REFERENCED.hasNext(): self._adaptor.addChild(root_1, stream_REFERENCED.nextNode() ) stream_REFERENCED.reset(); # sdl92.g:264:34: ( $a)? if stream_a.hasNext(): self._adaptor.addChild(root_1, stream_a.nextTree()) stream_a.reset(); # sdl92.g:264:37: ( pfpar )? if stream_pfpar.hasNext(): self._adaptor.addChild(root_1, stream_pfpar.nextTree()) stream_pfpar.reset(); # sdl92.g:264:44: ( text_area )* while stream_text_area.hasNext(): self._adaptor.addChild(root_1, stream_text_area.nextTree()) stream_text_area.reset(); # sdl92.g:264:55: ( procedure )* while stream_procedure.hasNext(): self._adaptor.addChild(root_1, stream_procedure.nextTree()) stream_procedure.reset(); # sdl92.g:265:17: ( composite_state )* while stream_composite_state.hasNext(): self._adaptor.addChild(root_1, stream_composite_state.nextTree()) stream_composite_state.reset(); # sdl92.g:265:34: ( processBody )? if stream_processBody.hasNext(): self._adaptor.addChild(root_1, stream_processBody.nextTree()) stream_processBody.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "process_definition" class pfpar_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "pfpar" # sdl92.g:270:1: pfpar : FPAR parameters_of_sort ( ',' parameters_of_sort )* ( end )? -> ^( PFPAR ( parameters_of_sort )+ ) ; def pfpar(self, ): retval = self.pfpar_return() retval.start = self.input.LT(1) root_0 = None FPAR79 = None char_literal81 = None parameters_of_sort80 = None parameters_of_sort82 = None end83 = None FPAR79_tree = None char_literal81_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_FPAR = RewriteRuleTokenStream(self._adaptor, "token FPAR") stream_parameters_of_sort = RewriteRuleSubtreeStream(self._adaptor, "rule parameters_of_sort") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:271:9: ( FPAR parameters_of_sort ( ',' parameters_of_sort )* ( end )? -> ^( PFPAR ( parameters_of_sort )+ ) ) # sdl92.g:271:17: FPAR parameters_of_sort ( ',' parameters_of_sort )* ( end )? pass FPAR79 = self.match(self.input, FPAR, self.FOLLOW_FPAR_in_pfpar2727) if self._state.backtracking == 0: stream_FPAR.add(FPAR79) self._state.following.append(self.FOLLOW_parameters_of_sort_in_pfpar2729) parameters_of_sort80 = self.parameters_of_sort() self._state.following.pop() if self._state.backtracking == 0: stream_parameters_of_sort.add(parameters_of_sort80.tree) # sdl92.g:272:17: ( ',' parameters_of_sort )* while True: #loop27 alt27 = 2 LA27_0 = self.input.LA(1) if (LA27_0 == COMMA) : alt27 = 1 if alt27 == 1: # sdl92.g:272:18: ',' parameters_of_sort pass char_literal81 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_pfpar2748) if self._state.backtracking == 0: stream_COMMA.add(char_literal81) self._state.following.append(self.FOLLOW_parameters_of_sort_in_pfpar2750) parameters_of_sort82 = self.parameters_of_sort() self._state.following.pop() if self._state.backtracking == 0: stream_parameters_of_sort.add(parameters_of_sort82.tree) else: break #loop27 # sdl92.g:273:17: ( end )? alt28 = 2 LA28 = self.input.LA(1) if LA28 in {228}: LA28_1 = self.input.LA(2) if (LA28_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA28_5 = self.input.LA(3) if (LA28_5 == L_PAREN) : LA28_9 = self.input.LA(4) if (LA28_9 == DASH) : LA28_12 = self.input.LA(5) if (LA28_12 == INT) : LA28_13 = self.input.LA(6) if (LA28_13 == COMMA) : LA28_15 = self.input.LA(7) if (LA28_15 == DASH) : LA28_17 = self.input.LA(8) if (LA28_17 == INT) : LA28_18 = self.input.LA(9) if (LA28_18 == R_PAREN) : LA28_20 = self.input.LA(10) if (LA28_20 == COMMA) : LA28_22 = self.input.LA(11) if (LA28_22 == L_PAREN) : LA28_23 = self.input.LA(12) if (LA28_23 == INT) : LA28_24 = self.input.LA(13) if (LA28_24 == COMMA) : LA28_25 = self.input.LA(14) if (LA28_25 == INT) : LA28_26 = self.input.LA(15) if (LA28_26 == R_PAREN) : LA28_27 = self.input.LA(16) if (LA28_27 == 225) : LA28_28 = self.input.LA(17) if (LA28_28 == 228) : LA28_29 = self.input.LA(18) if (LA28_29 == KEEP) : LA28_30 = self.input.LA(19) if (LA28_30 == SPECIFIC) : LA28_31 = self.input.LA(20) if (LA28_31 == GEODE) : LA28_32 = self.input.LA(21) if (LA28_32 == HYPERLINK) : LA28_16 = self.input.LA(22) if (LA28_16 == STRING) : LA28_19 = self.input.LA(23) if (LA28_19 == 225) : LA28_21 = self.input.LA(24) if (LA28_21 == COMMENT) : LA28_2 = self.input.LA(25) if (LA28_2 == STRING) : LA28_7 = self.input.LA(26) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(27) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_28 == COMMENT) : LA28_2 = self.input.LA(18) if (LA28_2 == STRING) : LA28_7 = self.input.LA(19) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(20) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_15 == INT) : LA28_18 = self.input.LA(8) if (LA28_18 == R_PAREN) : LA28_20 = self.input.LA(9) if (LA28_20 == COMMA) : LA28_22 = self.input.LA(10) if (LA28_22 == L_PAREN) : LA28_23 = self.input.LA(11) if (LA28_23 == INT) : LA28_24 = self.input.LA(12) if (LA28_24 == COMMA) : LA28_25 = self.input.LA(13) if (LA28_25 == INT) : LA28_26 = self.input.LA(14) if (LA28_26 == R_PAREN) : LA28_27 = self.input.LA(15) if (LA28_27 == 225) : LA28_28 = self.input.LA(16) if (LA28_28 == 228) : LA28_29 = self.input.LA(17) if (LA28_29 == KEEP) : LA28_30 = self.input.LA(18) if (LA28_30 == SPECIFIC) : LA28_31 = self.input.LA(19) if (LA28_31 == GEODE) : LA28_32 = self.input.LA(20) if (LA28_32 == HYPERLINK) : LA28_16 = self.input.LA(21) if (LA28_16 == STRING) : LA28_19 = self.input.LA(22) if (LA28_19 == 225) : LA28_21 = self.input.LA(23) if (LA28_21 == COMMENT) : LA28_2 = self.input.LA(24) if (LA28_2 == STRING) : LA28_7 = self.input.LA(25) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(26) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_28 == COMMENT) : LA28_2 = self.input.LA(17) if (LA28_2 == STRING) : LA28_7 = self.input.LA(18) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(19) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_9 == INT) : LA28_13 = self.input.LA(5) if (LA28_13 == COMMA) : LA28_15 = self.input.LA(6) if (LA28_15 == DASH) : LA28_17 = self.input.LA(7) if (LA28_17 == INT) : LA28_18 = self.input.LA(8) if (LA28_18 == R_PAREN) : LA28_20 = self.input.LA(9) if (LA28_20 == COMMA) : LA28_22 = self.input.LA(10) if (LA28_22 == L_PAREN) : LA28_23 = self.input.LA(11) if (LA28_23 == INT) : LA28_24 = self.input.LA(12) if (LA28_24 == COMMA) : LA28_25 = self.input.LA(13) if (LA28_25 == INT) : LA28_26 = self.input.LA(14) if (LA28_26 == R_PAREN) : LA28_27 = self.input.LA(15) if (LA28_27 == 225) : LA28_28 = self.input.LA(16) if (LA28_28 == 228) : LA28_29 = self.input.LA(17) if (LA28_29 == KEEP) : LA28_30 = self.input.LA(18) if (LA28_30 == SPECIFIC) : LA28_31 = self.input.LA(19) if (LA28_31 == GEODE) : LA28_32 = self.input.LA(20) if (LA28_32 == HYPERLINK) : LA28_16 = self.input.LA(21) if (LA28_16 == STRING) : LA28_19 = self.input.LA(22) if (LA28_19 == 225) : LA28_21 = self.input.LA(23) if (LA28_21 == COMMENT) : LA28_2 = self.input.LA(24) if (LA28_2 == STRING) : LA28_7 = self.input.LA(25) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(26) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_28 == COMMENT) : LA28_2 = self.input.LA(17) if (LA28_2 == STRING) : LA28_7 = self.input.LA(18) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(19) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_15 == INT) : LA28_18 = self.input.LA(7) if (LA28_18 == R_PAREN) : LA28_20 = self.input.LA(8) if (LA28_20 == COMMA) : LA28_22 = self.input.LA(9) if (LA28_22 == L_PAREN) : LA28_23 = self.input.LA(10) if (LA28_23 == INT) : LA28_24 = self.input.LA(11) if (LA28_24 == COMMA) : LA28_25 = self.input.LA(12) if (LA28_25 == INT) : LA28_26 = self.input.LA(13) if (LA28_26 == R_PAREN) : LA28_27 = self.input.LA(14) if (LA28_27 == 225) : LA28_28 = self.input.LA(15) if (LA28_28 == 228) : LA28_29 = self.input.LA(16) if (LA28_29 == KEEP) : LA28_30 = self.input.LA(17) if (LA28_30 == SPECIFIC) : LA28_31 = self.input.LA(18) if (LA28_31 == GEODE) : LA28_32 = self.input.LA(19) if (LA28_32 == HYPERLINK) : LA28_16 = self.input.LA(20) if (LA28_16 == STRING) : LA28_19 = self.input.LA(21) if (LA28_19 == 225) : LA28_21 = self.input.LA(22) if (LA28_21 == COMMENT) : LA28_2 = self.input.LA(23) if (LA28_2 == STRING) : LA28_7 = self.input.LA(24) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(25) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_28 == COMMENT) : LA28_2 = self.input.LA(16) if (LA28_2 == STRING) : LA28_7 = self.input.LA(17) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(18) if (self.synpred38_sdl92()) : alt28 = 1 elif (LA28_1 == KEEP) : LA28_6 = self.input.LA(3) if (LA28_6 == SPECIFIC) : LA28_10 = self.input.LA(4) if (LA28_10 == GEODE) : LA28_14 = self.input.LA(5) if (LA28_14 == HYPERLINK) : LA28_16 = self.input.LA(6) if (LA28_16 == STRING) : LA28_19 = self.input.LA(7) if (LA28_19 == 225) : LA28_21 = self.input.LA(8) if (LA28_21 == COMMENT) : LA28_2 = self.input.LA(9) if (LA28_2 == STRING) : LA28_7 = self.input.LA(10) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(11) if (self.synpred38_sdl92()) : alt28 = 1 elif LA28 in {COMMENT}: LA28_2 = self.input.LA(2) if (LA28_2 == STRING) : LA28_7 = self.input.LA(3) if (LA28_7 == SEMI) : LA28_11 = self.input.LA(4) if (self.synpred38_sdl92()) : alt28 = 1 elif LA28 in {SEMI}: LA28_3 = self.input.LA(2) if (self.synpred38_sdl92()) : alt28 = 1 if alt28 == 1: # sdl92.g:273:17: end pass self._state.following.append(self.FOLLOW_end_in_pfpar2770) end83 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end83.tree) # AST Rewrite # elements: parameters_of_sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 274:9: -> ^( PFPAR ( parameters_of_sort )+ ) # sdl92.g:274:17: ^( PFPAR ( parameters_of_sort )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(PFPAR, "PFPAR") , root_1) # sdl92.g:274:25: ( parameters_of_sort )+ if not (stream_parameters_of_sort.hasNext()): raise RewriteEarlyExitException() while stream_parameters_of_sort.hasNext(): self._adaptor.addChild(root_1, stream_parameters_of_sort.nextTree()) stream_parameters_of_sort.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "pfpar" class parameters_of_sort_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "parameters_of_sort" # sdl92.g:278:1: parameters_of_sort : variable_id ( ',' variable_id )* sort -> ^( PARAM ( variable_id )+ sort ) ; def parameters_of_sort(self, ): retval = self.parameters_of_sort_return() retval.start = self.input.LT(1) root_0 = None char_literal85 = None variable_id84 = None variable_id86 = None sort87 = None char_literal85_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_variable_id = RewriteRuleSubtreeStream(self._adaptor, "rule variable_id") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") try: try: # sdl92.g:279:9: ( variable_id ( ',' variable_id )* sort -> ^( PARAM ( variable_id )+ sort ) ) # sdl92.g:279:17: variable_id ( ',' variable_id )* sort pass self._state.following.append(self.FOLLOW_variable_id_in_parameters_of_sort2825) variable_id84 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id84.tree) # sdl92.g:279:29: ( ',' variable_id )* while True: #loop29 alt29 = 2 LA29_0 = self.input.LA(1) if (LA29_0 == COMMA) : alt29 = 1 if alt29 == 1: # sdl92.g:279:30: ',' variable_id pass char_literal85 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_parameters_of_sort2828) if self._state.backtracking == 0: stream_COMMA.add(char_literal85) self._state.following.append(self.FOLLOW_variable_id_in_parameters_of_sort2830) variable_id86 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id86.tree) else: break #loop29 self._state.following.append(self.FOLLOW_sort_in_parameters_of_sort2834) sort87 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort87.tree) # AST Rewrite # elements: variable_id, sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 280:9: -> ^( PARAM ( variable_id )+ sort ) # sdl92.g:280:17: ^( PARAM ( variable_id )+ sort ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(PARAM, "PARAM") , root_1) # sdl92.g:280:25: ( variable_id )+ if not (stream_variable_id.hasNext()): raise RewriteEarlyExitException() while stream_variable_id.hasNext(): self._adaptor.addChild(root_1, stream_variable_id.nextTree()) stream_variable_id.reset() self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "parameters_of_sort" class procedure_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "procedure" # sdl92.g:285:1: procedure : ( cif )? PROCEDURE procedure_id (e1= end | SEMI ) ( fpar )? (res= procedure_result )? ( text_area | procedure )* ( ( ( processBody )? ENDPROCEDURE ( procedure_id )? ) | EXTERNAL ) e2= end -> ^( PROCEDURE ( cif )? procedure_id ( $e1)? ( $e2)? ( fpar )? ( $res)? ( text_area )* ( procedure )* ( processBody )? ( EXTERNAL )? ) ; def procedure(self, ): retval = self.procedure_return() retval.start = self.input.LT(1) root_0 = None PROCEDURE89 = None SEMI91 = None ENDPROCEDURE96 = None EXTERNAL98 = None e1 = None res = None e2 = None cif88 = None procedure_id90 = None fpar92 = None text_area93 = None procedure94 = None processBody95 = None procedure_id97 = None PROCEDURE89_tree = None SEMI91_tree = None ENDPROCEDURE96_tree = None EXTERNAL98_tree = None stream_PROCEDURE = RewriteRuleTokenStream(self._adaptor, "token PROCEDURE") stream_EXTERNAL = RewriteRuleTokenStream(self._adaptor, "token EXTERNAL") stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") stream_ENDPROCEDURE = RewriteRuleTokenStream(self._adaptor, "token ENDPROCEDURE") stream_text_area = RewriteRuleSubtreeStream(self._adaptor, "rule text_area") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_procedure_id = RewriteRuleSubtreeStream(self._adaptor, "rule procedure_id") stream_processBody = RewriteRuleSubtreeStream(self._adaptor, "rule processBody") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_fpar = RewriteRuleSubtreeStream(self._adaptor, "rule fpar") stream_procedure = RewriteRuleSubtreeStream(self._adaptor, "rule procedure") stream_procedure_result = RewriteRuleSubtreeStream(self._adaptor, "rule procedure_result") try: try: # sdl92.g:286:9: ( ( cif )? PROCEDURE procedure_id (e1= end | SEMI ) ( fpar )? (res= procedure_result )? ( text_area | procedure )* ( ( ( processBody )? ENDPROCEDURE ( procedure_id )? ) | EXTERNAL ) e2= end -> ^( PROCEDURE ( cif )? procedure_id ( $e1)? ( $e2)? ( fpar )? ( $res)? ( text_area )* ( procedure )* ( processBody )? ( EXTERNAL )? ) ) # sdl92.g:286:17: ( cif )? PROCEDURE procedure_id (e1= end | SEMI ) ( fpar )? (res= procedure_result )? ( text_area | procedure )* ( ( ( processBody )? ENDPROCEDURE ( procedure_id )? ) | EXTERNAL ) e2= end pass # sdl92.g:286:17: ( cif )? alt30 = 2 LA30_0 = self.input.LA(1) if (LA30_0 == 228) : alt30 = 1 if alt30 == 1: # sdl92.g:286:17: cif pass self._state.following.append(self.FOLLOW_cif_in_procedure2891) cif88 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif88.tree) PROCEDURE89 = self.match(self.input, PROCEDURE, self.FOLLOW_PROCEDURE_in_procedure2910) if self._state.backtracking == 0: stream_PROCEDURE.add(PROCEDURE89) self._state.following.append(self.FOLLOW_procedure_id_in_procedure2912) procedure_id90 = self.procedure_id() self._state.following.pop() if self._state.backtracking == 0: stream_procedure_id.add(procedure_id90.tree) # sdl92.g:287:40: (e1= end | SEMI ) alt31 = 2 LA31_0 = self.input.LA(1) if (LA31_0 in {COMMENT, 228}) : alt31 = 1 elif (LA31_0 == SEMI) : LA31_2 = self.input.LA(2) if (self.synpred41_sdl92()) : alt31 = 1 elif (True) : alt31 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 31, 2, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 31, 0, self.input) raise nvae if alt31 == 1: # sdl92.g:287:41: e1= end pass self._state.following.append(self.FOLLOW_end_in_procedure2917) e1 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(e1.tree) elif alt31 == 2: # sdl92.g:287:50: SEMI pass SEMI91 = self.match(self.input, SEMI, self.FOLLOW_SEMI_in_procedure2921) if self._state.backtracking == 0: stream_SEMI.add(SEMI91) # sdl92.g:288:17: ( fpar )? alt32 = 2 LA32_0 = self.input.LA(1) if (LA32_0 == FPAR) : alt32 = 1 if alt32 == 1: # sdl92.g:288:17: fpar pass self._state.following.append(self.FOLLOW_fpar_in_procedure2940) fpar92 = self.fpar() self._state.following.pop() if self._state.backtracking == 0: stream_fpar.add(fpar92.tree) # sdl92.g:289:20: (res= procedure_result )? alt33 = 2 LA33_0 = self.input.LA(1) if (LA33_0 in {RETURNS, 226}) : alt33 = 1 if alt33 == 1: # sdl92.g:289:20: res= procedure_result pass self._state.following.append(self.FOLLOW_procedure_result_in_procedure2961) res = self.procedure_result() self._state.following.pop() if self._state.backtracking == 0: stream_procedure_result.add(res.tree) # sdl92.g:290:17: ( text_area | procedure )* while True: #loop34 alt34 = 3 LA34_0 = self.input.LA(1) if (LA34_0 == 228) : LA34_1 = self.input.LA(2) if (self.synpred44_sdl92()) : alt34 = 1 elif (self.synpred45_sdl92()) : alt34 = 2 elif (LA34_0 == PROCEDURE) : alt34 = 2 if alt34 == 1: # sdl92.g:290:18: text_area pass self._state.following.append(self.FOLLOW_text_area_in_procedure2981) text_area93 = self.text_area() self._state.following.pop() if self._state.backtracking == 0: stream_text_area.add(text_area93.tree) elif alt34 == 2: # sdl92.g:290:30: procedure pass self._state.following.append(self.FOLLOW_procedure_in_procedure2985) procedure94 = self.procedure() self._state.following.pop() if self._state.backtracking == 0: stream_procedure.add(procedure94.tree) else: break #loop34 # sdl92.g:291:17: ( ( ( processBody )? ENDPROCEDURE ( procedure_id )? ) | EXTERNAL ) alt37 = 2 LA37_0 = self.input.LA(1) if (LA37_0 in {EOF, BLOCK, COMMENT, CONNECT, CONNECTION, ENDBLOCK, ENDPROCEDURE, ENDPROCESS, ID, PROCESS, SEMI, SIGNAL, SIGNALROUTE, START, STATE, SYSTEM, TYPE, USE, 228}) : alt37 = 1 elif (LA37_0 == EXTERNAL) : alt37 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 37, 0, self.input) raise nvae if alt37 == 1: # sdl92.g:291:18: ( ( processBody )? ENDPROCEDURE ( procedure_id )? ) pass # sdl92.g:291:18: ( ( processBody )? ENDPROCEDURE ( procedure_id )? ) # sdl92.g:291:19: ( processBody )? ENDPROCEDURE ( procedure_id )? pass # sdl92.g:291:19: ( processBody )? alt35 = 2 LA35_0 = self.input.LA(1) if (LA35_0 in {CONNECTION, START, STATE, 228}) : alt35 = 1 elif (LA35_0 == ENDPROCEDURE) : LA35_2 = self.input.LA(2) if (self.synpred46_sdl92()) : alt35 = 1 if alt35 == 1: # sdl92.g:291:19: processBody pass self._state.following.append(self.FOLLOW_processBody_in_procedure3007) processBody95 = self.processBody() self._state.following.pop() if self._state.backtracking == 0: stream_processBody.add(processBody95.tree) ENDPROCEDURE96 = self.match(self.input, ENDPROCEDURE, self.FOLLOW_ENDPROCEDURE_in_procedure3010) if self._state.backtracking == 0: stream_ENDPROCEDURE.add(ENDPROCEDURE96) # sdl92.g:291:45: ( procedure_id )? alt36 = 2 LA36_0 = self.input.LA(1) if (LA36_0 == ID) : alt36 = 1 if alt36 == 1: # sdl92.g:291:45: procedure_id pass self._state.following.append(self.FOLLOW_procedure_id_in_procedure3012) procedure_id97 = self.procedure_id() self._state.following.pop() if self._state.backtracking == 0: stream_procedure_id.add(procedure_id97.tree) elif alt37 == 2: # sdl92.g:291:62: EXTERNAL pass EXTERNAL98 = self.match(self.input, EXTERNAL, self.FOLLOW_EXTERNAL_in_procedure3018) if self._state.backtracking == 0: stream_EXTERNAL.add(EXTERNAL98) self._state.following.append(self.FOLLOW_end_in_procedure3039) e2 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(e2.tree) # AST Rewrite # elements: PROCEDURE, cif, procedure_id, e1, e2, fpar, res, text_area, procedure, processBody, EXTERNAL # token labels: # rule labels: res, e1, e2, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if res is not None: stream_res = RewriteRuleSubtreeStream(self._adaptor, "rule res", res.tree) else: stream_res = RewriteRuleSubtreeStream(self._adaptor, "token res", None) if e1 is not None: stream_e1 = RewriteRuleSubtreeStream(self._adaptor, "rule e1", e1.tree) else: stream_e1 = RewriteRuleSubtreeStream(self._adaptor, "token e1", None) if e2 is not None: stream_e2 = RewriteRuleSubtreeStream(self._adaptor, "rule e2", e2.tree) else: stream_e2 = RewriteRuleSubtreeStream(self._adaptor, "token e2", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 293:9: -> ^( PROCEDURE ( cif )? procedure_id ( $e1)? ( $e2)? ( fpar )? ( $res)? ( text_area )* ( procedure )* ( processBody )? ( EXTERNAL )? ) # sdl92.g:293:17: ^( PROCEDURE ( cif )? procedure_id ( $e1)? ( $e2)? ( fpar )? ( $res)? ( text_area )* ( procedure )* ( processBody )? ( EXTERNAL )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_PROCEDURE.nextNode() , root_1) # sdl92.g:293:29: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); self._adaptor.addChild(root_1, stream_procedure_id.nextTree()) # sdl92.g:293:48: ( $e1)? if stream_e1.hasNext(): self._adaptor.addChild(root_1, stream_e1.nextTree()) stream_e1.reset(); # sdl92.g:293:53: ( $e2)? if stream_e2.hasNext(): self._adaptor.addChild(root_1, stream_e2.nextTree()) stream_e2.reset(); # sdl92.g:293:57: ( fpar )? if stream_fpar.hasNext(): self._adaptor.addChild(root_1, stream_fpar.nextTree()) stream_fpar.reset(); # sdl92.g:293:64: ( $res)? if stream_res.hasNext(): self._adaptor.addChild(root_1, stream_res.nextTree()) stream_res.reset(); # sdl92.g:294:17: ( text_area )* while stream_text_area.hasNext(): self._adaptor.addChild(root_1, stream_text_area.nextTree()) stream_text_area.reset(); # sdl92.g:294:28: ( procedure )* while stream_procedure.hasNext(): self._adaptor.addChild(root_1, stream_procedure.nextTree()) stream_procedure.reset(); # sdl92.g:294:39: ( processBody )? if stream_processBody.hasNext(): self._adaptor.addChild(root_1, stream_processBody.nextTree()) stream_processBody.reset(); # sdl92.g:294:52: ( EXTERNAL )? if stream_EXTERNAL.hasNext(): self._adaptor.addChild(root_1, stream_EXTERNAL.nextNode() ) stream_EXTERNAL.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "procedure" class procedure_result_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "procedure_result" # sdl92.g:298:1: procedure_result : ( '->' | RETURNS ) ( variable_id )? sort ( end )? -> ^( RETURNS ( variable_id )? sort ) ; def procedure_result(self, ): retval = self.procedure_result_return() retval.start = self.input.LT(1) root_0 = None string_literal99 = None RETURNS100 = None variable_id101 = None sort102 = None end103 = None string_literal99_tree = None RETURNS100_tree = None stream_226 = RewriteRuleTokenStream(self._adaptor, "token 226") stream_RETURNS = RewriteRuleTokenStream(self._adaptor, "token RETURNS") stream_variable_id = RewriteRuleSubtreeStream(self._adaptor, "rule variable_id") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") try: try: # sdl92.g:299:9: ( ( '->' | RETURNS ) ( variable_id )? sort ( end )? -> ^( RETURNS ( variable_id )? sort ) ) # sdl92.g:299:17: ( '->' | RETURNS ) ( variable_id )? sort ( end )? pass # sdl92.g:299:17: ( '->' | RETURNS ) alt38 = 2 LA38_0 = self.input.LA(1) if (LA38_0 == 226) : alt38 = 1 elif (LA38_0 == RETURNS) : alt38 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 38, 0, self.input) raise nvae if alt38 == 1: # sdl92.g:299:18: '->' pass string_literal99 = self.match(self.input, 226, self.FOLLOW_226_in_procedure_result3139) if self._state.backtracking == 0: stream_226.add(string_literal99) elif alt38 == 2: # sdl92.g:299:25: RETURNS pass RETURNS100 = self.match(self.input, RETURNS, self.FOLLOW_RETURNS_in_procedure_result3143) if self._state.backtracking == 0: stream_RETURNS.add(RETURNS100) # sdl92.g:300:17: ( variable_id )? alt39 = 2 LA39_0 = self.input.LA(1) if (LA39_0 == ID) : LA39_1 = self.input.LA(2) if (LA39_1 == ID) : alt39 = 1 if alt39 == 1: # sdl92.g:300:17: variable_id pass self._state.following.append(self.FOLLOW_variable_id_in_procedure_result3162) variable_id101 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id101.tree) self._state.following.append(self.FOLLOW_sort_in_procedure_result3181) sort102 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort102.tree) # sdl92.g:301:22: ( end )? alt40 = 2 LA40_0 = self.input.LA(1) if (LA40_0 == 228) : LA40_1 = self.input.LA(2) if (LA40_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA40_4 = self.input.LA(3) if (LA40_4 == L_PAREN) : LA40_6 = self.input.LA(4) if (LA40_6 == DASH) : LA40_8 = self.input.LA(5) if (LA40_8 == INT) : LA40_9 = self.input.LA(6) if (LA40_9 == COMMA) : LA40_11 = self.input.LA(7) if (LA40_11 == DASH) : LA40_13 = self.input.LA(8) if (LA40_13 == INT) : LA40_14 = self.input.LA(9) if (LA40_14 == R_PAREN) : LA40_16 = self.input.LA(10) if (LA40_16 == COMMA) : LA40_18 = self.input.LA(11) if (LA40_18 == L_PAREN) : LA40_19 = self.input.LA(12) if (LA40_19 == INT) : LA40_20 = self.input.LA(13) if (LA40_20 == COMMA) : LA40_21 = self.input.LA(14) if (LA40_21 == INT) : LA40_22 = self.input.LA(15) if (LA40_22 == R_PAREN) : LA40_23 = self.input.LA(16) if (LA40_23 == 225) : LA40_24 = self.input.LA(17) if (LA40_24 == 228) : LA40_25 = self.input.LA(18) if (LA40_25 == KEEP) : LA40_26 = self.input.LA(19) if (LA40_26 == SPECIFIC) : LA40_27 = self.input.LA(20) if (LA40_27 == GEODE) : LA40_28 = self.input.LA(21) if (LA40_28 == HYPERLINK) : LA40_12 = self.input.LA(22) if (LA40_12 == STRING) : LA40_15 = self.input.LA(23) if (LA40_15 == 225) : LA40_17 = self.input.LA(24) if (LA40_17 == COMMENT) : alt40 = 1 elif (LA40_24 == COMMENT) : alt40 = 1 elif (LA40_11 == INT) : LA40_14 = self.input.LA(8) if (LA40_14 == R_PAREN) : LA40_16 = self.input.LA(9) if (LA40_16 == COMMA) : LA40_18 = self.input.LA(10) if (LA40_18 == L_PAREN) : LA40_19 = self.input.LA(11) if (LA40_19 == INT) : LA40_20 = self.input.LA(12) if (LA40_20 == COMMA) : LA40_21 = self.input.LA(13) if (LA40_21 == INT) : LA40_22 = self.input.LA(14) if (LA40_22 == R_PAREN) : LA40_23 = self.input.LA(15) if (LA40_23 == 225) : LA40_24 = self.input.LA(16) if (LA40_24 == 228) : LA40_25 = self.input.LA(17) if (LA40_25 == KEEP) : LA40_26 = self.input.LA(18) if (LA40_26 == SPECIFIC) : LA40_27 = self.input.LA(19) if (LA40_27 == GEODE) : LA40_28 = self.input.LA(20) if (LA40_28 == HYPERLINK) : LA40_12 = self.input.LA(21) if (LA40_12 == STRING) : LA40_15 = self.input.LA(22) if (LA40_15 == 225) : LA40_17 = self.input.LA(23) if (LA40_17 == COMMENT) : alt40 = 1 elif (LA40_24 == COMMENT) : alt40 = 1 elif (LA40_6 == INT) : LA40_9 = self.input.LA(5) if (LA40_9 == COMMA) : LA40_11 = self.input.LA(6) if (LA40_11 == DASH) : LA40_13 = self.input.LA(7) if (LA40_13 == INT) : LA40_14 = self.input.LA(8) if (LA40_14 == R_PAREN) : LA40_16 = self.input.LA(9) if (LA40_16 == COMMA) : LA40_18 = self.input.LA(10) if (LA40_18 == L_PAREN) : LA40_19 = self.input.LA(11) if (LA40_19 == INT) : LA40_20 = self.input.LA(12) if (LA40_20 == COMMA) : LA40_21 = self.input.LA(13) if (LA40_21 == INT) : LA40_22 = self.input.LA(14) if (LA40_22 == R_PAREN) : LA40_23 = self.input.LA(15) if (LA40_23 == 225) : LA40_24 = self.input.LA(16) if (LA40_24 == 228) : LA40_25 = self.input.LA(17) if (LA40_25 == KEEP) : LA40_26 = self.input.LA(18) if (LA40_26 == SPECIFIC) : LA40_27 = self.input.LA(19) if (LA40_27 == GEODE) : LA40_28 = self.input.LA(20) if (LA40_28 == HYPERLINK) : LA40_12 = self.input.LA(21) if (LA40_12 == STRING) : LA40_15 = self.input.LA(22) if (LA40_15 == 225) : LA40_17 = self.input.LA(23) if (LA40_17 == COMMENT) : alt40 = 1 elif (LA40_24 == COMMENT) : alt40 = 1 elif (LA40_11 == INT) : LA40_14 = self.input.LA(7) if (LA40_14 == R_PAREN) : LA40_16 = self.input.LA(8) if (LA40_16 == COMMA) : LA40_18 = self.input.LA(9) if (LA40_18 == L_PAREN) : LA40_19 = self.input.LA(10) if (LA40_19 == INT) : LA40_20 = self.input.LA(11) if (LA40_20 == COMMA) : LA40_21 = self.input.LA(12) if (LA40_21 == INT) : LA40_22 = self.input.LA(13) if (LA40_22 == R_PAREN) : LA40_23 = self.input.LA(14) if (LA40_23 == 225) : LA40_24 = self.input.LA(15) if (LA40_24 == 228) : LA40_25 = self.input.LA(16) if (LA40_25 == KEEP) : LA40_26 = self.input.LA(17) if (LA40_26 == SPECIFIC) : LA40_27 = self.input.LA(18) if (LA40_27 == GEODE) : LA40_28 = self.input.LA(19) if (LA40_28 == HYPERLINK) : LA40_12 = self.input.LA(20) if (LA40_12 == STRING) : LA40_15 = self.input.LA(21) if (LA40_15 == 225) : LA40_17 = self.input.LA(22) if (LA40_17 == COMMENT) : alt40 = 1 elif (LA40_24 == COMMENT) : alt40 = 1 elif (LA40_1 == KEEP) : LA40_5 = self.input.LA(3) if (LA40_5 == SPECIFIC) : LA40_7 = self.input.LA(4) if (LA40_7 == GEODE) : LA40_10 = self.input.LA(5) if (LA40_10 == HYPERLINK) : LA40_12 = self.input.LA(6) if (LA40_12 == STRING) : LA40_15 = self.input.LA(7) if (LA40_15 == 225) : LA40_17 = self.input.LA(8) if (LA40_17 == COMMENT) : alt40 = 1 elif (LA40_0 in {COMMENT, SEMI}) : alt40 = 1 if alt40 == 1: # sdl92.g:301:22: end pass self._state.following.append(self.FOLLOW_end_in_procedure_result3183) end103 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end103.tree) # AST Rewrite # elements: RETURNS, variable_id, sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 302:9: -> ^( RETURNS ( variable_id )? sort ) # sdl92.g:302:17: ^( RETURNS ( variable_id )? sort ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_RETURNS.nextNode() , root_1) # sdl92.g:302:27: ( variable_id )? if stream_variable_id.hasNext(): self._adaptor.addChild(root_1, stream_variable_id.nextTree()) stream_variable_id.reset(); self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "procedure_result" class fpar_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "fpar" # sdl92.g:306:1: fpar : FPAR formal_variable_param ( ',' formal_variable_param )* end -> ^( FPAR ( formal_variable_param )+ ) ; def fpar(self, ): retval = self.fpar_return() retval.start = self.input.LT(1) root_0 = None FPAR104 = None char_literal106 = None formal_variable_param105 = None formal_variable_param107 = None end108 = None FPAR104_tree = None char_literal106_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_FPAR = RewriteRuleTokenStream(self._adaptor, "token FPAR") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_formal_variable_param = RewriteRuleSubtreeStream(self._adaptor, "rule formal_variable_param") try: try: # sdl92.g:307:9: ( FPAR formal_variable_param ( ',' formal_variable_param )* end -> ^( FPAR ( formal_variable_param )+ ) ) # sdl92.g:307:17: FPAR formal_variable_param ( ',' formal_variable_param )* end pass FPAR104 = self.match(self.input, FPAR, self.FOLLOW_FPAR_in_fpar3240) if self._state.backtracking == 0: stream_FPAR.add(FPAR104) self._state.following.append(self.FOLLOW_formal_variable_param_in_fpar3242) formal_variable_param105 = self.formal_variable_param() self._state.following.pop() if self._state.backtracking == 0: stream_formal_variable_param.add(formal_variable_param105.tree) # sdl92.g:308:17: ( ',' formal_variable_param )* while True: #loop41 alt41 = 2 LA41_0 = self.input.LA(1) if (LA41_0 == COMMA) : alt41 = 1 if alt41 == 1: # sdl92.g:308:18: ',' formal_variable_param pass char_literal106 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_fpar3261) if self._state.backtracking == 0: stream_COMMA.add(char_literal106) self._state.following.append(self.FOLLOW_formal_variable_param_in_fpar3263) formal_variable_param107 = self.formal_variable_param() self._state.following.pop() if self._state.backtracking == 0: stream_formal_variable_param.add(formal_variable_param107.tree) else: break #loop41 self._state.following.append(self.FOLLOW_end_in_fpar3283) end108 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end108.tree) # AST Rewrite # elements: FPAR, formal_variable_param # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 310:9: -> ^( FPAR ( formal_variable_param )+ ) # sdl92.g:310:17: ^( FPAR ( formal_variable_param )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_FPAR.nextNode() , root_1) # sdl92.g:310:24: ( formal_variable_param )+ if not (stream_formal_variable_param.hasNext()): raise RewriteEarlyExitException() while stream_formal_variable_param.hasNext(): self._adaptor.addChild(root_1, stream_formal_variable_param.nextTree()) stream_formal_variable_param.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "fpar" class formal_variable_param_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "formal_variable_param" # sdl92.g:314:1: formal_variable_param : ( INOUT | IN | OUT )? variable_id ( ',' variable_id )* sort -> ^( PARAM ( INOUT )? ( IN )? ( OUT )? ( variable_id )+ sort ) ; def formal_variable_param(self, ): retval = self.formal_variable_param_return() retval.start = self.input.LT(1) root_0 = None INOUT109 = None IN110 = None OUT111 = None char_literal113 = None variable_id112 = None variable_id114 = None sort115 = None INOUT109_tree = None IN110_tree = None OUT111_tree = None char_literal113_tree = None stream_INOUT = RewriteRuleTokenStream(self._adaptor, "token INOUT") stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_IN = RewriteRuleTokenStream(self._adaptor, "token IN") stream_OUT = RewriteRuleTokenStream(self._adaptor, "token OUT") stream_variable_id = RewriteRuleSubtreeStream(self._adaptor, "rule variable_id") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") try: try: # sdl92.g:315:9: ( ( INOUT | IN | OUT )? variable_id ( ',' variable_id )* sort -> ^( PARAM ( INOUT )? ( IN )? ( OUT )? ( variable_id )+ sort ) ) # sdl92.g:315:17: ( INOUT | IN | OUT )? variable_id ( ',' variable_id )* sort pass # sdl92.g:315:17: ( INOUT | IN | OUT )? alt42 = 4 LA42 = self.input.LA(1) if LA42 in {INOUT}: alt42 = 1 elif LA42 in {IN}: alt42 = 2 elif LA42 in {OUT}: alt42 = 3 if alt42 == 1: # sdl92.g:315:18: INOUT pass INOUT109 = self.match(self.input, INOUT, self.FOLLOW_INOUT_in_formal_variable_param3338) if self._state.backtracking == 0: stream_INOUT.add(INOUT109) elif alt42 == 2: # sdl92.g:315:26: IN pass IN110 = self.match(self.input, IN, self.FOLLOW_IN_in_formal_variable_param3342) if self._state.backtracking == 0: stream_IN.add(IN110) elif alt42 == 3: # sdl92.g:315:31: OUT pass OUT111 = self.match(self.input, OUT, self.FOLLOW_OUT_in_formal_variable_param3346) if self._state.backtracking == 0: stream_OUT.add(OUT111) self._state.following.append(self.FOLLOW_variable_id_in_formal_variable_param3366) variable_id112 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id112.tree) # sdl92.g:316:29: ( ',' variable_id )* while True: #loop43 alt43 = 2 LA43_0 = self.input.LA(1) if (LA43_0 == COMMA) : alt43 = 1 if alt43 == 1: # sdl92.g:316:30: ',' variable_id pass char_literal113 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_formal_variable_param3369) if self._state.backtracking == 0: stream_COMMA.add(char_literal113) self._state.following.append(self.FOLLOW_variable_id_in_formal_variable_param3371) variable_id114 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id114.tree) else: break #loop43 self._state.following.append(self.FOLLOW_sort_in_formal_variable_param3375) sort115 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort115.tree) # AST Rewrite # elements: INOUT, IN, OUT, variable_id, sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 317:9: -> ^( PARAM ( INOUT )? ( IN )? ( OUT )? ( variable_id )+ sort ) # sdl92.g:317:17: ^( PARAM ( INOUT )? ( IN )? ( OUT )? ( variable_id )+ sort ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(PARAM, "PARAM") , root_1) # sdl92.g:317:25: ( INOUT )? if stream_INOUT.hasNext(): self._adaptor.addChild(root_1, stream_INOUT.nextNode() ) stream_INOUT.reset(); # sdl92.g:317:32: ( IN )? if stream_IN.hasNext(): self._adaptor.addChild(root_1, stream_IN.nextNode() ) stream_IN.reset(); # sdl92.g:317:36: ( OUT )? if stream_OUT.hasNext(): self._adaptor.addChild(root_1, stream_OUT.nextNode() ) stream_OUT.reset(); # sdl92.g:317:41: ( variable_id )+ if not (stream_variable_id.hasNext()): raise RewriteEarlyExitException() while stream_variable_id.hasNext(): self._adaptor.addChild(root_1, stream_variable_id.nextTree()) stream_variable_id.reset() self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "formal_variable_param" class text_area_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "text_area" # sdl92.g:322:1: text_area : cif ( content )? cif_end_text -> ^( TEXTAREA cif ( content )? cif_end_text ) ; def text_area(self, ): retval = self.text_area_return() retval.start = self.input.LT(1) root_0 = None cif116 = None content117 = None cif_end_text118 = None stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_cif_end_text = RewriteRuleSubtreeStream(self._adaptor, "rule cif_end_text") stream_content = RewriteRuleSubtreeStream(self._adaptor, "rule content") try: try: # sdl92.g:323:9: ( cif ( content )? cif_end_text -> ^( TEXTAREA cif ( content )? cif_end_text ) ) # sdl92.g:323:17: cif ( content )? cif_end_text pass self._state.following.append(self.FOLLOW_cif_in_text_area3441) cif116 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif116.tree) # sdl92.g:324:17: ( content )? alt44 = 2 LA44_0 = self.input.LA(1) if (LA44_0 == 228) : LA44_1 = self.input.LA(2) if (self.synpred57_sdl92()) : alt44 = 1 elif (LA44_0 in {DCL, FPAR, NEWTYPE, PROCEDURE, RETURNS, SIGNAL, SYNONYM, SYNTYPE, TIMER, USE, 226}) : alt44 = 1 if alt44 == 1: # sdl92.g:324:17: content pass self._state.following.append(self.FOLLOW_content_in_text_area3459) content117 = self.content() self._state.following.pop() if self._state.backtracking == 0: stream_content.add(content117.tree) self._state.following.append(self.FOLLOW_cif_end_text_in_text_area3478) cif_end_text118 = self.cif_end_text() self._state.following.pop() if self._state.backtracking == 0: stream_cif_end_text.add(cif_end_text118.tree) # AST Rewrite # elements: cif, content, cif_end_text # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 326:9: -> ^( TEXTAREA cif ( content )? cif_end_text ) # sdl92.g:326:17: ^( TEXTAREA cif ( content )? cif_end_text ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(TEXTAREA, "TEXTAREA") , root_1) self._adaptor.addChild(root_1, stream_cif.nextTree()) # sdl92.g:326:32: ( content )? if stream_content.hasNext(): self._adaptor.addChild(root_1, stream_content.nextTree()) stream_content.reset(); self._adaptor.addChild(root_1, stream_cif_end_text.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "text_area" class content_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "content" # sdl92.g:332:1: content : ( procedure | use_clause | signal_declaration | fpar |res= procedure_result | timer_declaration | syntype_definition | newtype_definition | variable_definition | synonym_definition )* -> ^( TEXTAREA_CONTENT ( fpar )* ( $res)? ( procedure )* ( variable_definition )* ( syntype_definition )* ( newtype_definition )* ( timer_declaration )* ( signal_declaration )* ( use_clause )* ( synonym_definition )* ) ; def content(self, ): retval = self.content_return() retval.start = self.input.LT(1) root_0 = None res = None procedure119 = None use_clause120 = None signal_declaration121 = None fpar122 = None timer_declaration123 = None syntype_definition124 = None newtype_definition125 = None variable_definition126 = None synonym_definition127 = None stream_syntype_definition = RewriteRuleSubtreeStream(self._adaptor, "rule syntype_definition") stream_variable_definition = RewriteRuleSubtreeStream(self._adaptor, "rule variable_definition") stream_use_clause = RewriteRuleSubtreeStream(self._adaptor, "rule use_clause") stream_signal_declaration = RewriteRuleSubtreeStream(self._adaptor, "rule signal_declaration") stream_timer_declaration = RewriteRuleSubtreeStream(self._adaptor, "rule timer_declaration") stream_newtype_definition = RewriteRuleSubtreeStream(self._adaptor, "rule newtype_definition") stream_procedure = RewriteRuleSubtreeStream(self._adaptor, "rule procedure") stream_fpar = RewriteRuleSubtreeStream(self._adaptor, "rule fpar") stream_procedure_result = RewriteRuleSubtreeStream(self._adaptor, "rule procedure_result") stream_synonym_definition = RewriteRuleSubtreeStream(self._adaptor, "rule synonym_definition") try: try: # sdl92.g:333:9: ( ( procedure | use_clause | signal_declaration | fpar |res= procedure_result | timer_declaration | syntype_definition | newtype_definition | variable_definition | synonym_definition )* -> ^( TEXTAREA_CONTENT ( fpar )* ( $res)? ( procedure )* ( variable_definition )* ( syntype_definition )* ( newtype_definition )* ( timer_declaration )* ( signal_declaration )* ( use_clause )* ( synonym_definition )* ) ) # sdl92.g:333:18: ( procedure | use_clause | signal_declaration | fpar |res= procedure_result | timer_declaration | syntype_definition | newtype_definition | variable_definition | synonym_definition )* pass # sdl92.g:333:18: ( procedure | use_clause | signal_declaration | fpar |res= procedure_result | timer_declaration | syntype_definition | newtype_definition | variable_definition | synonym_definition )* while True: #loop45 alt45 = 11 LA45 = self.input.LA(1) if LA45 in {228}: LA45_1 = self.input.LA(2) if (LA45_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt45 = 1 elif (LA45_1 == KEEP) : LA45_13 = self.input.LA(3) if (LA45_13 == SPECIFIC) : LA45_14 = self.input.LA(4) if (LA45_14 == GEODE) : LA45_15 = self.input.LA(5) if (LA45_15 == ASNFILENAME) : alt45 = 2 elif (LA45_15 == PARAMNAMES) : alt45 = 3 elif LA45 in {PROCEDURE}: alt45 = 1 elif LA45 in {USE}: alt45 = 2 elif LA45 in {SIGNAL}: alt45 = 3 elif LA45 in {FPAR}: alt45 = 4 elif LA45 in {RETURNS, 226}: alt45 = 5 elif LA45 in {TIMER}: alt45 = 6 elif LA45 in {SYNTYPE}: alt45 = 7 elif LA45 in {NEWTYPE}: alt45 = 8 elif LA45 in {DCL}: alt45 = 9 elif LA45 in {SYNONYM}: alt45 = 10 if alt45 == 1: # sdl92.g:333:19: procedure pass self._state.following.append(self.FOLLOW_procedure_in_content3540) procedure119 = self.procedure() self._state.following.pop() if self._state.backtracking == 0: stream_procedure.add(procedure119.tree) elif alt45 == 2: # sdl92.g:334:20: use_clause pass self._state.following.append(self.FOLLOW_use_clause_in_content3561) use_clause120 = self.use_clause() self._state.following.pop() if self._state.backtracking == 0: stream_use_clause.add(use_clause120.tree) elif alt45 == 3: # sdl92.g:335:20: signal_declaration pass self._state.following.append(self.FOLLOW_signal_declaration_in_content3582) signal_declaration121 = self.signal_declaration() self._state.following.pop() if self._state.backtracking == 0: stream_signal_declaration.add(signal_declaration121.tree) elif alt45 == 4: # sdl92.g:336:20: fpar pass self._state.following.append(self.FOLLOW_fpar_in_content3603) fpar122 = self.fpar() self._state.following.pop() if self._state.backtracking == 0: stream_fpar.add(fpar122.tree) elif alt45 == 5: # sdl92.g:337:20: res= procedure_result pass self._state.following.append(self.FOLLOW_procedure_result_in_content3626) res = self.procedure_result() self._state.following.pop() if self._state.backtracking == 0: stream_procedure_result.add(res.tree) elif alt45 == 6: # sdl92.g:338:20: timer_declaration pass self._state.following.append(self.FOLLOW_timer_declaration_in_content3647) timer_declaration123 = self.timer_declaration() self._state.following.pop() if self._state.backtracking == 0: stream_timer_declaration.add(timer_declaration123.tree) elif alt45 == 7: # sdl92.g:339:20: syntype_definition pass self._state.following.append(self.FOLLOW_syntype_definition_in_content3668) syntype_definition124 = self.syntype_definition() self._state.following.pop() if self._state.backtracking == 0: stream_syntype_definition.add(syntype_definition124.tree) elif alt45 == 8: # sdl92.g:340:20: newtype_definition pass self._state.following.append(self.FOLLOW_newtype_definition_in_content3689) newtype_definition125 = self.newtype_definition() self._state.following.pop() if self._state.backtracking == 0: stream_newtype_definition.add(newtype_definition125.tree) elif alt45 == 9: # sdl92.g:341:20: variable_definition pass self._state.following.append(self.FOLLOW_variable_definition_in_content3710) variable_definition126 = self.variable_definition() self._state.following.pop() if self._state.backtracking == 0: stream_variable_definition.add(variable_definition126.tree) elif alt45 == 10: # sdl92.g:342:20: synonym_definition pass self._state.following.append(self.FOLLOW_synonym_definition_in_content3731) synonym_definition127 = self.synonym_definition() self._state.following.pop() if self._state.backtracking == 0: stream_synonym_definition.add(synonym_definition127.tree) else: break #loop45 # AST Rewrite # elements: fpar, res, procedure, variable_definition, syntype_definition, newtype_definition, timer_declaration, signal_declaration, use_clause, synonym_definition # token labels: # rule labels: res, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if res is not None: stream_res = RewriteRuleSubtreeStream(self._adaptor, "rule res", res.tree) else: stream_res = RewriteRuleSubtreeStream(self._adaptor, "token res", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 343:9: -> ^( TEXTAREA_CONTENT ( fpar )* ( $res)? ( procedure )* ( variable_definition )* ( syntype_definition )* ( newtype_definition )* ( timer_declaration )* ( signal_declaration )* ( use_clause )* ( synonym_definition )* ) # sdl92.g:343:18: ^( TEXTAREA_CONTENT ( fpar )* ( $res)? ( procedure )* ( variable_definition )* ( syntype_definition )* ( newtype_definition )* ( timer_declaration )* ( signal_declaration )* ( use_clause )* ( synonym_definition )* ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(TEXTAREA_CONTENT, "TEXTAREA_CONTENT") , root_1) # sdl92.g:343:37: ( fpar )* while stream_fpar.hasNext(): self._adaptor.addChild(root_1, stream_fpar.nextTree()) stream_fpar.reset(); # sdl92.g:343:44: ( $res)? if stream_res.hasNext(): self._adaptor.addChild(root_1, stream_res.nextTree()) stream_res.reset(); # sdl92.g:343:49: ( procedure )* while stream_procedure.hasNext(): self._adaptor.addChild(root_1, stream_procedure.nextTree()) stream_procedure.reset(); # sdl92.g:343:60: ( variable_definition )* while stream_variable_definition.hasNext(): self._adaptor.addChild(root_1, stream_variable_definition.nextTree()) stream_variable_definition.reset(); # sdl92.g:344:20: ( syntype_definition )* while stream_syntype_definition.hasNext(): self._adaptor.addChild(root_1, stream_syntype_definition.nextTree()) stream_syntype_definition.reset(); # sdl92.g:344:40: ( newtype_definition )* while stream_newtype_definition.hasNext(): self._adaptor.addChild(root_1, stream_newtype_definition.nextTree()) stream_newtype_definition.reset(); # sdl92.g:344:60: ( timer_declaration )* while stream_timer_declaration.hasNext(): self._adaptor.addChild(root_1, stream_timer_declaration.nextTree()) stream_timer_declaration.reset(); # sdl92.g:345:20: ( signal_declaration )* while stream_signal_declaration.hasNext(): self._adaptor.addChild(root_1, stream_signal_declaration.nextTree()) stream_signal_declaration.reset(); # sdl92.g:345:40: ( use_clause )* while stream_use_clause.hasNext(): self._adaptor.addChild(root_1, stream_use_clause.nextTree()) stream_use_clause.reset(); # sdl92.g:345:52: ( synonym_definition )* while stream_synonym_definition.hasNext(): self._adaptor.addChild(root_1, stream_synonym_definition.nextTree()) stream_synonym_definition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "content" class timer_declaration_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "timer_declaration" # sdl92.g:349:1: timer_declaration : TIMER timer_id ( ',' timer_id )* end -> ^( TIMER ( timer_id )+ ) ; def timer_declaration(self, ): retval = self.timer_declaration_return() retval.start = self.input.LT(1) root_0 = None TIMER128 = None char_literal130 = None timer_id129 = None timer_id131 = None end132 = None TIMER128_tree = None char_literal130_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_TIMER = RewriteRuleTokenStream(self._adaptor, "token TIMER") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_timer_id = RewriteRuleSubtreeStream(self._adaptor, "rule timer_id") try: try: # sdl92.g:350:9: ( TIMER timer_id ( ',' timer_id )* end -> ^( TIMER ( timer_id )+ ) ) # sdl92.g:350:17: TIMER timer_id ( ',' timer_id )* end pass TIMER128 = self.match(self.input, TIMER, self.FOLLOW_TIMER_in_timer_declaration3854) if self._state.backtracking == 0: stream_TIMER.add(TIMER128) self._state.following.append(self.FOLLOW_timer_id_in_timer_declaration3856) timer_id129 = self.timer_id() self._state.following.pop() if self._state.backtracking == 0: stream_timer_id.add(timer_id129.tree) # sdl92.g:351:17: ( ',' timer_id )* while True: #loop46 alt46 = 2 LA46_0 = self.input.LA(1) if (LA46_0 == COMMA) : alt46 = 1 if alt46 == 1: # sdl92.g:351:18: ',' timer_id pass char_literal130 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_timer_declaration3875) if self._state.backtracking == 0: stream_COMMA.add(char_literal130) self._state.following.append(self.FOLLOW_timer_id_in_timer_declaration3877) timer_id131 = self.timer_id() self._state.following.pop() if self._state.backtracking == 0: stream_timer_id.add(timer_id131.tree) else: break #loop46 self._state.following.append(self.FOLLOW_end_in_timer_declaration3897) end132 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end132.tree) # AST Rewrite # elements: TIMER, timer_id # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 353:9: -> ^( TIMER ( timer_id )+ ) # sdl92.g:353:17: ^( TIMER ( timer_id )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_TIMER.nextNode() , root_1) # sdl92.g:353:25: ( timer_id )+ if not (stream_timer_id.hasNext()): raise RewriteEarlyExitException() while stream_timer_id.hasNext(): self._adaptor.addChild(root_1, stream_timer_id.nextTree()) stream_timer_id.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "timer_declaration" class syntype_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "syntype_definition" # sdl92.g:357:1: syntype_definition : SYNTYPE syntype_name '=' parent_sort ( CONSTANTS ( range_condition ( ',' range_condition )* ) )? ENDSYNTYPE ( syntype_name )? end -> ^( SYNTYPE syntype_name parent_sort ( range_condition )* ) ; def syntype_definition(self, ): retval = self.syntype_definition_return() retval.start = self.input.LT(1) root_0 = None SYNTYPE133 = None char_literal135 = None CONSTANTS137 = None char_literal139 = None ENDSYNTYPE141 = None syntype_name134 = None parent_sort136 = None range_condition138 = None range_condition140 = None syntype_name142 = None end143 = None SYNTYPE133_tree = None char_literal135_tree = None CONSTANTS137_tree = None char_literal139_tree = None ENDSYNTYPE141_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_CONSTANTS = RewriteRuleTokenStream(self._adaptor, "token CONSTANTS") stream_SYNTYPE = RewriteRuleTokenStream(self._adaptor, "token SYNTYPE") stream_ENDSYNTYPE = RewriteRuleTokenStream(self._adaptor, "token ENDSYNTYPE") stream_EQ = RewriteRuleTokenStream(self._adaptor, "token EQ") stream_range_condition = RewriteRuleSubtreeStream(self._adaptor, "rule range_condition") stream_parent_sort = RewriteRuleSubtreeStream(self._adaptor, "rule parent_sort") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_syntype_name = RewriteRuleSubtreeStream(self._adaptor, "rule syntype_name") try: try: # sdl92.g:358:9: ( SYNTYPE syntype_name '=' parent_sort ( CONSTANTS ( range_condition ( ',' range_condition )* ) )? ENDSYNTYPE ( syntype_name )? end -> ^( SYNTYPE syntype_name parent_sort ( range_condition )* ) ) # sdl92.g:358:17: SYNTYPE syntype_name '=' parent_sort ( CONSTANTS ( range_condition ( ',' range_condition )* ) )? ENDSYNTYPE ( syntype_name )? end pass SYNTYPE133 = self.match(self.input, SYNTYPE, self.FOLLOW_SYNTYPE_in_syntype_definition3951) if self._state.backtracking == 0: stream_SYNTYPE.add(SYNTYPE133) self._state.following.append(self.FOLLOW_syntype_name_in_syntype_definition3953) syntype_name134 = self.syntype_name() self._state.following.pop() if self._state.backtracking == 0: stream_syntype_name.add(syntype_name134.tree) char_literal135 = self.match(self.input, EQ, self.FOLLOW_EQ_in_syntype_definition3955) if self._state.backtracking == 0: stream_EQ.add(char_literal135) self._state.following.append(self.FOLLOW_parent_sort_in_syntype_definition3957) parent_sort136 = self.parent_sort() self._state.following.pop() if self._state.backtracking == 0: stream_parent_sort.add(parent_sort136.tree) # sdl92.g:359:17: ( CONSTANTS ( range_condition ( ',' range_condition )* ) )? alt48 = 2 LA48_0 = self.input.LA(1) if (LA48_0 == CONSTANTS) : alt48 = 1 if alt48 == 1: # sdl92.g:359:18: CONSTANTS ( range_condition ( ',' range_condition )* ) pass CONSTANTS137 = self.match(self.input, CONSTANTS, self.FOLLOW_CONSTANTS_in_syntype_definition3976) if self._state.backtracking == 0: stream_CONSTANTS.add(CONSTANTS137) # sdl92.g:359:28: ( range_condition ( ',' range_condition )* ) # sdl92.g:359:29: range_condition ( ',' range_condition )* pass self._state.following.append(self.FOLLOW_range_condition_in_syntype_definition3979) range_condition138 = self.range_condition() self._state.following.pop() if self._state.backtracking == 0: stream_range_condition.add(range_condition138.tree) # sdl92.g:359:45: ( ',' range_condition )* while True: #loop47 alt47 = 2 LA47_0 = self.input.LA(1) if (LA47_0 == COMMA) : alt47 = 1 if alt47 == 1: # sdl92.g:359:46: ',' range_condition pass char_literal139 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_syntype_definition3982) if self._state.backtracking == 0: stream_COMMA.add(char_literal139) self._state.following.append(self.FOLLOW_range_condition_in_syntype_definition3984) range_condition140 = self.range_condition() self._state.following.pop() if self._state.backtracking == 0: stream_range_condition.add(range_condition140.tree) else: break #loop47 ENDSYNTYPE141 = self.match(self.input, ENDSYNTYPE, self.FOLLOW_ENDSYNTYPE_in_syntype_definition4008) if self._state.backtracking == 0: stream_ENDSYNTYPE.add(ENDSYNTYPE141) # sdl92.g:360:28: ( syntype_name )? alt49 = 2 LA49_0 = self.input.LA(1) if (LA49_0 == ID) : alt49 = 1 if alt49 == 1: # sdl92.g:360:28: syntype_name pass self._state.following.append(self.FOLLOW_syntype_name_in_syntype_definition4010) syntype_name142 = self.syntype_name() self._state.following.pop() if self._state.backtracking == 0: stream_syntype_name.add(syntype_name142.tree) self._state.following.append(self.FOLLOW_end_in_syntype_definition4013) end143 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end143.tree) # AST Rewrite # elements: SYNTYPE, syntype_name, parent_sort, range_condition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 361:9: -> ^( SYNTYPE syntype_name parent_sort ( range_condition )* ) # sdl92.g:361:17: ^( SYNTYPE syntype_name parent_sort ( range_condition )* ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_SYNTYPE.nextNode() , root_1) self._adaptor.addChild(root_1, stream_syntype_name.nextTree()) self._adaptor.addChild(root_1, stream_parent_sort.nextTree()) # sdl92.g:361:52: ( range_condition )* while stream_range_condition.hasNext(): self._adaptor.addChild(root_1, stream_range_condition.nextTree()) stream_range_condition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "syntype_definition" class syntype_name_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "syntype_name" # sdl92.g:365:1: syntype_name : sort ; def syntype_name(self, ): retval = self.syntype_name_return() retval.start = self.input.LT(1) root_0 = None sort144 = None try: try: # sdl92.g:366:9: ( sort ) # sdl92.g:366:17: sort pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_sort_in_syntype_name4071) sort144 = self.sort() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, sort144.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "syntype_name" class parent_sort_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "parent_sort" # sdl92.g:370:1: parent_sort : sort ; def parent_sort(self, ): retval = self.parent_sort_return() retval.start = self.input.LT(1) root_0 = None sort145 = None try: try: # sdl92.g:371:9: ( sort ) # sdl92.g:371:17: sort pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_sort_in_parent_sort4103) sort145 = self.sort() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, sort145.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "parent_sort" class newtype_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "newtype_definition" # sdl92.g:375:1: newtype_definition : NEWTYPE type_name ( array_definition | structure_definition )? ENDNEWTYPE ( type_name )? end -> ^( NEWTYPE type_name ( array_definition )* ( structure_definition )* ) ; def newtype_definition(self, ): retval = self.newtype_definition_return() retval.start = self.input.LT(1) root_0 = None NEWTYPE146 = None ENDNEWTYPE150 = None type_name147 = None array_definition148 = None structure_definition149 = None type_name151 = None end152 = None NEWTYPE146_tree = None ENDNEWTYPE150_tree = None stream_ENDNEWTYPE = RewriteRuleTokenStream(self._adaptor, "token ENDNEWTYPE") stream_NEWTYPE = RewriteRuleTokenStream(self._adaptor, "token NEWTYPE") stream_type_name = RewriteRuleSubtreeStream(self._adaptor, "rule type_name") stream_structure_definition = RewriteRuleSubtreeStream(self._adaptor, "rule structure_definition") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_array_definition = RewriteRuleSubtreeStream(self._adaptor, "rule array_definition") try: try: # sdl92.g:376:9: ( NEWTYPE type_name ( array_definition | structure_definition )? ENDNEWTYPE ( type_name )? end -> ^( NEWTYPE type_name ( array_definition )* ( structure_definition )* ) ) # sdl92.g:376:17: NEWTYPE type_name ( array_definition | structure_definition )? ENDNEWTYPE ( type_name )? end pass NEWTYPE146 = self.match(self.input, NEWTYPE, self.FOLLOW_NEWTYPE_in_newtype_definition4135) if self._state.backtracking == 0: stream_NEWTYPE.add(NEWTYPE146) self._state.following.append(self.FOLLOW_type_name_in_newtype_definition4137) type_name147 = self.type_name() self._state.following.pop() if self._state.backtracking == 0: stream_type_name.add(type_name147.tree) # sdl92.g:376:35: ( array_definition | structure_definition )? alt50 = 3 LA50_0 = self.input.LA(1) if (LA50_0 == ARRAY) : alt50 = 1 elif (LA50_0 == STRUCT) : alt50 = 2 if alt50 == 1: # sdl92.g:376:36: array_definition pass self._state.following.append(self.FOLLOW_array_definition_in_newtype_definition4140) array_definition148 = self.array_definition() self._state.following.pop() if self._state.backtracking == 0: stream_array_definition.add(array_definition148.tree) elif alt50 == 2: # sdl92.g:376:53: structure_definition pass self._state.following.append(self.FOLLOW_structure_definition_in_newtype_definition4142) structure_definition149 = self.structure_definition() self._state.following.pop() if self._state.backtracking == 0: stream_structure_definition.add(structure_definition149.tree) ENDNEWTYPE150 = self.match(self.input, ENDNEWTYPE, self.FOLLOW_ENDNEWTYPE_in_newtype_definition4162) if self._state.backtracking == 0: stream_ENDNEWTYPE.add(ENDNEWTYPE150) # sdl92.g:377:28: ( type_name )? alt51 = 2 LA51_0 = self.input.LA(1) if (LA51_0 == ID) : alt51 = 1 if alt51 == 1: # sdl92.g:377:28: type_name pass self._state.following.append(self.FOLLOW_type_name_in_newtype_definition4164) type_name151 = self.type_name() self._state.following.pop() if self._state.backtracking == 0: stream_type_name.add(type_name151.tree) self._state.following.append(self.FOLLOW_end_in_newtype_definition4167) end152 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end152.tree) # AST Rewrite # elements: NEWTYPE, type_name, array_definition, structure_definition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 378:9: -> ^( NEWTYPE type_name ( array_definition )* ( structure_definition )* ) # sdl92.g:378:17: ^( NEWTYPE type_name ( array_definition )* ( structure_definition )* ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_NEWTYPE.nextNode() , root_1) self._adaptor.addChild(root_1, stream_type_name.nextTree()) # sdl92.g:378:37: ( array_definition )* while stream_array_definition.hasNext(): self._adaptor.addChild(root_1, stream_array_definition.nextTree()) stream_array_definition.reset(); # sdl92.g:378:55: ( structure_definition )* while stream_structure_definition.hasNext(): self._adaptor.addChild(root_1, stream_structure_definition.nextTree()) stream_structure_definition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "newtype_definition" class type_name_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "type_name" # sdl92.g:382:1: type_name : sort ; def type_name(self, ): retval = self.type_name_return() retval.start = self.input.LT(1) root_0 = None sort153 = None try: try: # sdl92.g:383:9: ( sort ) # sdl92.g:383:17: sort pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_sort_in_type_name4226) sort153 = self.sort() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, sort153.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "type_name" class array_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "array_definition" # sdl92.g:387:1: array_definition : ARRAY '(' sort ',' sort ')' -> ^( ARRAY sort sort ) ; def array_definition(self, ): retval = self.array_definition_return() retval.start = self.input.LT(1) root_0 = None ARRAY154 = None char_literal155 = None char_literal157 = None char_literal159 = None sort156 = None sort158 = None ARRAY154_tree = None char_literal155_tree = None char_literal157_tree = None char_literal159_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_ARRAY = RewriteRuleTokenStream(self._adaptor, "token ARRAY") stream_L_PAREN = RewriteRuleTokenStream(self._adaptor, "token L_PAREN") stream_R_PAREN = RewriteRuleTokenStream(self._adaptor, "token R_PAREN") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") try: try: # sdl92.g:388:9: ( ARRAY '(' sort ',' sort ')' -> ^( ARRAY sort sort ) ) # sdl92.g:388:17: ARRAY '(' sort ',' sort ')' pass ARRAY154 = self.match(self.input, ARRAY, self.FOLLOW_ARRAY_in_array_definition4258) if self._state.backtracking == 0: stream_ARRAY.add(ARRAY154) char_literal155 = self.match(self.input, L_PAREN, self.FOLLOW_L_PAREN_in_array_definition4260) if self._state.backtracking == 0: stream_L_PAREN.add(char_literal155) self._state.following.append(self.FOLLOW_sort_in_array_definition4262) sort156 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort156.tree) char_literal157 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_array_definition4264) if self._state.backtracking == 0: stream_COMMA.add(char_literal157) self._state.following.append(self.FOLLOW_sort_in_array_definition4266) sort158 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort158.tree) char_literal159 = self.match(self.input, R_PAREN, self.FOLLOW_R_PAREN_in_array_definition4268) if self._state.backtracking == 0: stream_R_PAREN.add(char_literal159) # AST Rewrite # elements: ARRAY, sort, sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 389:9: -> ^( ARRAY sort sort ) # sdl92.g:389:17: ^( ARRAY sort sort ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_ARRAY.nextNode() , root_1) self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "array_definition" class structure_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "structure_definition" # sdl92.g:393:1: structure_definition : STRUCT field_list end -> ^( STRUCT field_list ) ; def structure_definition(self, ): retval = self.structure_definition_return() retval.start = self.input.LT(1) root_0 = None STRUCT160 = None field_list161 = None end162 = None STRUCT160_tree = None stream_STRUCT = RewriteRuleTokenStream(self._adaptor, "token STRUCT") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_field_list = RewriteRuleSubtreeStream(self._adaptor, "rule field_list") try: try: # sdl92.g:394:9: ( STRUCT field_list end -> ^( STRUCT field_list ) ) # sdl92.g:394:17: STRUCT field_list end pass STRUCT160 = self.match(self.input, STRUCT, self.FOLLOW_STRUCT_in_structure_definition4323) if self._state.backtracking == 0: stream_STRUCT.add(STRUCT160) self._state.following.append(self.FOLLOW_field_list_in_structure_definition4325) field_list161 = self.field_list() self._state.following.pop() if self._state.backtracking == 0: stream_field_list.add(field_list161.tree) self._state.following.append(self.FOLLOW_end_in_structure_definition4327) end162 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end162.tree) # AST Rewrite # elements: STRUCT, field_list # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 395:9: -> ^( STRUCT field_list ) # sdl92.g:395:17: ^( STRUCT field_list ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_STRUCT.nextNode() , root_1) self._adaptor.addChild(root_1, stream_field_list.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "structure_definition" class field_list_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "field_list" # sdl92.g:399:1: field_list : field_definition ( end field_definition )* -> ^( FIELDS ( field_definition )+ ) ; def field_list(self, ): retval = self.field_list_return() retval.start = self.input.LT(1) root_0 = None field_definition163 = None end164 = None field_definition165 = None stream_field_definition = RewriteRuleSubtreeStream(self._adaptor, "rule field_definition") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:400:9: ( field_definition ( end field_definition )* -> ^( FIELDS ( field_definition )+ ) ) # sdl92.g:400:17: field_definition ( end field_definition )* pass self._state.following.append(self.FOLLOW_field_definition_in_field_list4380) field_definition163 = self.field_definition() self._state.following.pop() if self._state.backtracking == 0: stream_field_definition.add(field_definition163.tree) # sdl92.g:400:34: ( end field_definition )* while True: #loop52 alt52 = 2 alt52 = self.dfa52.predict(self.input) if alt52 == 1: # sdl92.g:400:35: end field_definition pass self._state.following.append(self.FOLLOW_end_in_field_list4383) end164 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end164.tree) self._state.following.append(self.FOLLOW_field_definition_in_field_list4385) field_definition165 = self.field_definition() self._state.following.pop() if self._state.backtracking == 0: stream_field_definition.add(field_definition165.tree) else: break #loop52 # AST Rewrite # elements: field_definition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 401:9: -> ^( FIELDS ( field_definition )+ ) # sdl92.g:401:17: ^( FIELDS ( field_definition )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(FIELDS, "FIELDS") , root_1) # sdl92.g:401:26: ( field_definition )+ if not (stream_field_definition.hasNext()): raise RewriteEarlyExitException() while stream_field_definition.hasNext(): self._adaptor.addChild(root_1, stream_field_definition.nextTree()) stream_field_definition.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "field_list" class field_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "field_definition" # sdl92.g:405:1: field_definition : field_name ( ',' field_name )* sort -> ^( FIELD ( field_name )+ sort ) ; def field_definition(self, ): retval = self.field_definition_return() retval.start = self.input.LT(1) root_0 = None char_literal167 = None field_name166 = None field_name168 = None sort169 = None char_literal167_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") stream_field_name = RewriteRuleSubtreeStream(self._adaptor, "rule field_name") try: try: # sdl92.g:406:9: ( field_name ( ',' field_name )* sort -> ^( FIELD ( field_name )+ sort ) ) # sdl92.g:406:17: field_name ( ',' field_name )* sort pass self._state.following.append(self.FOLLOW_field_name_in_field_definition4441) field_name166 = self.field_name() self._state.following.pop() if self._state.backtracking == 0: stream_field_name.add(field_name166.tree) # sdl92.g:406:28: ( ',' field_name )* while True: #loop53 alt53 = 2 LA53_0 = self.input.LA(1) if (LA53_0 == COMMA) : alt53 = 1 if alt53 == 1: # sdl92.g:406:29: ',' field_name pass char_literal167 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_field_definition4444) if self._state.backtracking == 0: stream_COMMA.add(char_literal167) self._state.following.append(self.FOLLOW_field_name_in_field_definition4446) field_name168 = self.field_name() self._state.following.pop() if self._state.backtracking == 0: stream_field_name.add(field_name168.tree) else: break #loop53 self._state.following.append(self.FOLLOW_sort_in_field_definition4450) sort169 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort169.tree) # AST Rewrite # elements: field_name, sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 407:9: -> ^( FIELD ( field_name )+ sort ) # sdl92.g:407:17: ^( FIELD ( field_name )+ sort ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(FIELD, "FIELD") , root_1) # sdl92.g:407:25: ( field_name )+ if not (stream_field_name.hasNext()): raise RewriteEarlyExitException() while stream_field_name.hasNext(): self._adaptor.addChild(root_1, stream_field_name.nextTree()) stream_field_name.reset() self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "field_definition" class variable_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "variable_definition" # sdl92.g:411:1: variable_definition : DCL variables_of_sort ( ',' variables_of_sort )* end -> ^( DCL ( variables_of_sort )+ ) ; def variable_definition(self, ): retval = self.variable_definition_return() retval.start = self.input.LT(1) root_0 = None DCL170 = None char_literal172 = None variables_of_sort171 = None variables_of_sort173 = None end174 = None DCL170_tree = None char_literal172_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_DCL = RewriteRuleTokenStream(self._adaptor, "token DCL") stream_variables_of_sort = RewriteRuleSubtreeStream(self._adaptor, "rule variables_of_sort") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:412:9: ( DCL variables_of_sort ( ',' variables_of_sort )* end -> ^( DCL ( variables_of_sort )+ ) ) # sdl92.g:412:17: DCL variables_of_sort ( ',' variables_of_sort )* end pass DCL170 = self.match(self.input, DCL, self.FOLLOW_DCL_in_variable_definition4506) if self._state.backtracking == 0: stream_DCL.add(DCL170) self._state.following.append(self.FOLLOW_variables_of_sort_in_variable_definition4508) variables_of_sort171 = self.variables_of_sort() self._state.following.pop() if self._state.backtracking == 0: stream_variables_of_sort.add(variables_of_sort171.tree) # sdl92.g:413:17: ( ',' variables_of_sort )* while True: #loop54 alt54 = 2 LA54_0 = self.input.LA(1) if (LA54_0 == COMMA) : alt54 = 1 if alt54 == 1: # sdl92.g:413:18: ',' variables_of_sort pass char_literal172 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_variable_definition4527) if self._state.backtracking == 0: stream_COMMA.add(char_literal172) self._state.following.append(self.FOLLOW_variables_of_sort_in_variable_definition4529) variables_of_sort173 = self.variables_of_sort() self._state.following.pop() if self._state.backtracking == 0: stream_variables_of_sort.add(variables_of_sort173.tree) else: break #loop54 self._state.following.append(self.FOLLOW_end_in_variable_definition4549) end174 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end174.tree) # AST Rewrite # elements: DCL, variables_of_sort # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 415:9: -> ^( DCL ( variables_of_sort )+ ) # sdl92.g:415:17: ^( DCL ( variables_of_sort )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_DCL.nextNode() , root_1) # sdl92.g:415:23: ( variables_of_sort )+ if not (stream_variables_of_sort.hasNext()): raise RewriteEarlyExitException() while stream_variables_of_sort.hasNext(): self._adaptor.addChild(root_1, stream_variables_of_sort.nextTree()) stream_variables_of_sort.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "variable_definition" class synonym_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "synonym_definition" # sdl92.g:419:1: synonym_definition : internal_synonym_definition ; def synonym_definition(self, ): retval = self.synonym_definition_return() retval.start = self.input.LT(1) root_0 = None internal_synonym_definition175 = None try: try: # sdl92.g:420:9: ( internal_synonym_definition ) # sdl92.g:420:17: internal_synonym_definition pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_internal_synonym_definition_in_synonym_definition4603) internal_synonym_definition175 = self.internal_synonym_definition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, internal_synonym_definition175.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "synonym_definition" class internal_synonym_definition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "internal_synonym_definition" # sdl92.g:424:1: internal_synonym_definition : SYNONYM synonym_definition_item ( ',' synonym_definition_item )* end -> ^( SYNONYM_LIST ( synonym_definition_item )+ ) ; def internal_synonym_definition(self, ): retval = self.internal_synonym_definition_return() retval.start = self.input.LT(1) root_0 = None SYNONYM176 = None char_literal178 = None synonym_definition_item177 = None synonym_definition_item179 = None end180 = None SYNONYM176_tree = None char_literal178_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_SYNONYM = RewriteRuleTokenStream(self._adaptor, "token SYNONYM") stream_synonym_definition_item = RewriteRuleSubtreeStream(self._adaptor, "rule synonym_definition_item") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:425:9: ( SYNONYM synonym_definition_item ( ',' synonym_definition_item )* end -> ^( SYNONYM_LIST ( synonym_definition_item )+ ) ) # sdl92.g:425:17: SYNONYM synonym_definition_item ( ',' synonym_definition_item )* end pass SYNONYM176 = self.match(self.input, SYNONYM, self.FOLLOW_SYNONYM_in_internal_synonym_definition4635) if self._state.backtracking == 0: stream_SYNONYM.add(SYNONYM176) self._state.following.append(self.FOLLOW_synonym_definition_item_in_internal_synonym_definition4637) synonym_definition_item177 = self.synonym_definition_item() self._state.following.pop() if self._state.backtracking == 0: stream_synonym_definition_item.add(synonym_definition_item177.tree) # sdl92.g:425:49: ( ',' synonym_definition_item )* while True: #loop55 alt55 = 2 LA55_0 = self.input.LA(1) if (LA55_0 == COMMA) : alt55 = 1 if alt55 == 1: # sdl92.g:425:50: ',' synonym_definition_item pass char_literal178 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_internal_synonym_definition4640) if self._state.backtracking == 0: stream_COMMA.add(char_literal178) self._state.following.append(self.FOLLOW_synonym_definition_item_in_internal_synonym_definition4642) synonym_definition_item179 = self.synonym_definition_item() self._state.following.pop() if self._state.backtracking == 0: stream_synonym_definition_item.add(synonym_definition_item179.tree) else: break #loop55 self._state.following.append(self.FOLLOW_end_in_internal_synonym_definition4662) end180 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end180.tree) # AST Rewrite # elements: synonym_definition_item # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 427:9: -> ^( SYNONYM_LIST ( synonym_definition_item )+ ) # sdl92.g:427:17: ^( SYNONYM_LIST ( synonym_definition_item )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(SYNONYM_LIST, "SYNONYM_LIST") , root_1) # sdl92.g:427:32: ( synonym_definition_item )+ if not (stream_synonym_definition_item.hasNext()): raise RewriteEarlyExitException() while stream_synonym_definition_item.hasNext(): self._adaptor.addChild(root_1, stream_synonym_definition_item.nextTree()) stream_synonym_definition_item.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "internal_synonym_definition" class synonym_definition_item_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "synonym_definition_item" # sdl92.g:431:1: synonym_definition_item : sort sort '=' ground_expression -> ^( SYNONYM sort sort ground_expression ) ; def synonym_definition_item(self, ): retval = self.synonym_definition_item_return() retval.start = self.input.LT(1) root_0 = None char_literal183 = None sort181 = None sort182 = None ground_expression184 = None char_literal183_tree = None stream_EQ = RewriteRuleTokenStream(self._adaptor, "token EQ") stream_ground_expression = RewriteRuleSubtreeStream(self._adaptor, "rule ground_expression") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") try: try: # sdl92.g:432:9: ( sort sort '=' ground_expression -> ^( SYNONYM sort sort ground_expression ) ) # sdl92.g:432:17: sort sort '=' ground_expression pass self._state.following.append(self.FOLLOW_sort_in_synonym_definition_item4716) sort181 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort181.tree) self._state.following.append(self.FOLLOW_sort_in_synonym_definition_item4718) sort182 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort182.tree) char_literal183 = self.match(self.input, EQ, self.FOLLOW_EQ_in_synonym_definition_item4720) if self._state.backtracking == 0: stream_EQ.add(char_literal183) self._state.following.append(self.FOLLOW_ground_expression_in_synonym_definition_item4722) ground_expression184 = self.ground_expression() self._state.following.pop() if self._state.backtracking == 0: stream_ground_expression.add(ground_expression184.tree) # AST Rewrite # elements: sort, sort, ground_expression # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 433:9: -> ^( SYNONYM sort sort ground_expression ) # sdl92.g:433:17: ^( SYNONYM sort sort ground_expression ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(SYNONYM, "SYNONYM") , root_1) self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_1, stream_sort.nextTree()) self._adaptor.addChild(root_1, stream_ground_expression.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "synonym_definition_item" class variables_of_sort_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "variables_of_sort" # sdl92.g:437:1: variables_of_sort : variable_id ( ',' variable_id )* sort ( ':=' ground_expression )? -> ^( VARIABLES ( variable_id )+ sort ( ground_expression )? ) ; def variables_of_sort(self, ): retval = self.variables_of_sort_return() retval.start = self.input.LT(1) root_0 = None char_literal186 = None string_literal189 = None variable_id185 = None variable_id187 = None sort188 = None ground_expression190 = None char_literal186_tree = None string_literal189_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_ASSIG_OP = RewriteRuleTokenStream(self._adaptor, "token ASSIG_OP") stream_variable_id = RewriteRuleSubtreeStream(self._adaptor, "rule variable_id") stream_ground_expression = RewriteRuleSubtreeStream(self._adaptor, "rule ground_expression") stream_sort = RewriteRuleSubtreeStream(self._adaptor, "rule sort") try: try: # sdl92.g:438:9: ( variable_id ( ',' variable_id )* sort ( ':=' ground_expression )? -> ^( VARIABLES ( variable_id )+ sort ( ground_expression )? ) ) # sdl92.g:438:17: variable_id ( ',' variable_id )* sort ( ':=' ground_expression )? pass self._state.following.append(self.FOLLOW_variable_id_in_variables_of_sort4779) variable_id185 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id185.tree) # sdl92.g:438:29: ( ',' variable_id )* while True: #loop56 alt56 = 2 LA56_0 = self.input.LA(1) if (LA56_0 == COMMA) : alt56 = 1 if alt56 == 1: # sdl92.g:438:30: ',' variable_id pass char_literal186 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_variables_of_sort4782) if self._state.backtracking == 0: stream_COMMA.add(char_literal186) self._state.following.append(self.FOLLOW_variable_id_in_variables_of_sort4784) variable_id187 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id187.tree) else: break #loop56 self._state.following.append(self.FOLLOW_sort_in_variables_of_sort4788) sort188 = self.sort() self._state.following.pop() if self._state.backtracking == 0: stream_sort.add(sort188.tree) # sdl92.g:438:53: ( ':=' ground_expression )? alt57 = 2 LA57_0 = self.input.LA(1) if (LA57_0 == ASSIG_OP) : alt57 = 1 if alt57 == 1: # sdl92.g:438:54: ':=' ground_expression pass string_literal189 = self.match(self.input, ASSIG_OP, self.FOLLOW_ASSIG_OP_in_variables_of_sort4791) if self._state.backtracking == 0: stream_ASSIG_OP.add(string_literal189) self._state.following.append(self.FOLLOW_ground_expression_in_variables_of_sort4793) ground_expression190 = self.ground_expression() self._state.following.pop() if self._state.backtracking == 0: stream_ground_expression.add(ground_expression190.tree) # AST Rewrite # elements: variable_id, sort, ground_expression # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 439:9: -> ^( VARIABLES ( variable_id )+ sort ( ground_expression )? ) # sdl92.g:439:17: ^( VARIABLES ( variable_id )+ sort ( ground_expression )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(VARIABLES, "VARIABLES") , root_1) # sdl92.g:439:29: ( variable_id )+ if not (stream_variable_id.hasNext()): raise RewriteEarlyExitException() while stream_variable_id.hasNext(): self._adaptor.addChild(root_1, stream_variable_id.nextTree()) stream_variable_id.reset() self._adaptor.addChild(root_1, stream_sort.nextTree()) # sdl92.g:439:47: ( ground_expression )? if stream_ground_expression.hasNext(): self._adaptor.addChild(root_1, stream_ground_expression.nextTree()) stream_ground_expression.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "variables_of_sort" class ground_expression_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "ground_expression" # sdl92.g:443:1: ground_expression : expression -> ^( GROUND expression ) ; def ground_expression(self, ): retval = self.ground_expression_return() retval.start = self.input.LT(1) root_0 = None expression191 = None stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") try: try: # sdl92.g:444:9: ( expression -> ^( GROUND expression ) ) # sdl92.g:444:17: expression pass self._state.following.append(self.FOLLOW_expression_in_ground_expression4854) expression191 = self.expression() self._state.following.pop() if self._state.backtracking == 0: stream_expression.add(expression191.tree) # AST Rewrite # elements: expression # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 445:9: -> ^( GROUND expression ) # sdl92.g:445:17: ^( GROUND expression ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(GROUND, "GROUND") , root_1) self._adaptor.addChild(root_1, stream_expression.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "ground_expression" class number_of_instances_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "number_of_instances" # sdl92.g:449:1: number_of_instances : '(' initial_number= INT ',' maximum_number= INT ')' -> ^( NUMBER_OF_INSTANCES $initial_number $maximum_number) ; def number_of_instances(self, ): retval = self.number_of_instances_return() retval.start = self.input.LT(1) root_0 = None initial_number = None maximum_number = None char_literal192 = None char_literal193 = None char_literal194 = None initial_number_tree = None maximum_number_tree = None char_literal192_tree = None char_literal193_tree = None char_literal194_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_L_PAREN = RewriteRuleTokenStream(self._adaptor, "token L_PAREN") stream_R_PAREN = RewriteRuleTokenStream(self._adaptor, "token R_PAREN") stream_INT = RewriteRuleTokenStream(self._adaptor, "token INT") try: try: # sdl92.g:450:9: ( '(' initial_number= INT ',' maximum_number= INT ')' -> ^( NUMBER_OF_INSTANCES $initial_number $maximum_number) ) # sdl92.g:450:17: '(' initial_number= INT ',' maximum_number= INT ')' pass char_literal192 = self.match(self.input, L_PAREN, self.FOLLOW_L_PAREN_in_number_of_instances4907) if self._state.backtracking == 0: stream_L_PAREN.add(char_literal192) initial_number = self.match(self.input, INT, self.FOLLOW_INT_in_number_of_instances4911) if self._state.backtracking == 0: stream_INT.add(initial_number) char_literal193 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_number_of_instances4913) if self._state.backtracking == 0: stream_COMMA.add(char_literal193) maximum_number = self.match(self.input, INT, self.FOLLOW_INT_in_number_of_instances4917) if self._state.backtracking == 0: stream_INT.add(maximum_number) char_literal194 = self.match(self.input, R_PAREN, self.FOLLOW_R_PAREN_in_number_of_instances4919) if self._state.backtracking == 0: stream_R_PAREN.add(char_literal194) # AST Rewrite # elements: initial_number, maximum_number # token labels: initial_number, maximum_number # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 stream_initial_number = RewriteRuleTokenStream(self._adaptor, "token initial_number", initial_number) stream_maximum_number = RewriteRuleTokenStream(self._adaptor, "token maximum_number", maximum_number) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 451:9: -> ^( NUMBER_OF_INSTANCES $initial_number $maximum_number) # sdl92.g:451:17: ^( NUMBER_OF_INSTANCES $initial_number $maximum_number) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(NUMBER_OF_INSTANCES, "NUMBER_OF_INSTANCES") , root_1) self._adaptor.addChild(root_1, stream_initial_number.nextNode()) self._adaptor.addChild(root_1, stream_maximum_number.nextNode()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "number_of_instances" class processBody_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "processBody" # sdl92.g:455:1: processBody : ( start )? ( state | floating_label )* ; def processBody(self, ): retval = self.processBody_return() retval.start = self.input.LT(1) root_0 = None start195 = None state196 = None floating_label197 = None try: try: # sdl92.g:456:9: ( ( start )? ( state | floating_label )* ) # sdl92.g:456:17: ( start )? ( state | floating_label )* pass root_0 = self._adaptor.nil() # sdl92.g:456:17: ( start )? alt58 = 2 LA58_0 = self.input.LA(1) if (LA58_0 == 228) : LA58_1 = self.input.LA(2) if (LA58_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA58_4 = self.input.LA(3) if (LA58_4 == L_PAREN) : LA58_6 = self.input.LA(4) if (LA58_6 == DASH) : LA58_8 = self.input.LA(5) if (LA58_8 == INT) : LA58_9 = self.input.LA(6) if (LA58_9 == COMMA) : LA58_11 = self.input.LA(7) if (LA58_11 == DASH) : LA58_13 = self.input.LA(8) if (LA58_13 == INT) : LA58_14 = self.input.LA(9) if (LA58_14 == R_PAREN) : LA58_16 = self.input.LA(10) if (LA58_16 == COMMA) : LA58_18 = self.input.LA(11) if (LA58_18 == L_PAREN) : LA58_19 = self.input.LA(12) if (LA58_19 == INT) : LA58_20 = self.input.LA(13) if (LA58_20 == COMMA) : LA58_21 = self.input.LA(14) if (LA58_21 == INT) : LA58_22 = self.input.LA(15) if (LA58_22 == R_PAREN) : LA58_23 = self.input.LA(16) if (LA58_23 == 225) : LA58_24 = self.input.LA(17) if (LA58_24 == 228) : LA58_25 = self.input.LA(18) if (LA58_25 == KEEP) : LA58_26 = self.input.LA(19) if (LA58_26 == SPECIFIC) : LA58_27 = self.input.LA(20) if (LA58_27 == GEODE) : LA58_28 = self.input.LA(21) if (LA58_28 == HYPERLINK) : LA58_12 = self.input.LA(22) if (LA58_12 == STRING) : LA58_15 = self.input.LA(23) if (LA58_15 == 225) : LA58_17 = self.input.LA(24) if (LA58_17 == START) : alt58 = 1 elif (LA58_24 == START) : alt58 = 1 elif (LA58_11 == INT) : LA58_14 = self.input.LA(8) if (LA58_14 == R_PAREN) : LA58_16 = self.input.LA(9) if (LA58_16 == COMMA) : LA58_18 = self.input.LA(10) if (LA58_18 == L_PAREN) : LA58_19 = self.input.LA(11) if (LA58_19 == INT) : LA58_20 = self.input.LA(12) if (LA58_20 == COMMA) : LA58_21 = self.input.LA(13) if (LA58_21 == INT) : LA58_22 = self.input.LA(14) if (LA58_22 == R_PAREN) : LA58_23 = self.input.LA(15) if (LA58_23 == 225) : LA58_24 = self.input.LA(16) if (LA58_24 == 228) : LA58_25 = self.input.LA(17) if (LA58_25 == KEEP) : LA58_26 = self.input.LA(18) if (LA58_26 == SPECIFIC) : LA58_27 = self.input.LA(19) if (LA58_27 == GEODE) : LA58_28 = self.input.LA(20) if (LA58_28 == HYPERLINK) : LA58_12 = self.input.LA(21) if (LA58_12 == STRING) : LA58_15 = self.input.LA(22) if (LA58_15 == 225) : LA58_17 = self.input.LA(23) if (LA58_17 == START) : alt58 = 1 elif (LA58_24 == START) : alt58 = 1 elif (LA58_6 == INT) : LA58_9 = self.input.LA(5) if (LA58_9 == COMMA) : LA58_11 = self.input.LA(6) if (LA58_11 == DASH) : LA58_13 = self.input.LA(7) if (LA58_13 == INT) : LA58_14 = self.input.LA(8) if (LA58_14 == R_PAREN) : LA58_16 = self.input.LA(9) if (LA58_16 == COMMA) : LA58_18 = self.input.LA(10) if (LA58_18 == L_PAREN) : LA58_19 = self.input.LA(11) if (LA58_19 == INT) : LA58_20 = self.input.LA(12) if (LA58_20 == COMMA) : LA58_21 = self.input.LA(13) if (LA58_21 == INT) : LA58_22 = self.input.LA(14) if (LA58_22 == R_PAREN) : LA58_23 = self.input.LA(15) if (LA58_23 == 225) : LA58_24 = self.input.LA(16) if (LA58_24 == 228) : LA58_25 = self.input.LA(17) if (LA58_25 == KEEP) : LA58_26 = self.input.LA(18) if (LA58_26 == SPECIFIC) : LA58_27 = self.input.LA(19) if (LA58_27 == GEODE) : LA58_28 = self.input.LA(20) if (LA58_28 == HYPERLINK) : LA58_12 = self.input.LA(21) if (LA58_12 == STRING) : LA58_15 = self.input.LA(22) if (LA58_15 == 225) : LA58_17 = self.input.LA(23) if (LA58_17 == START) : alt58 = 1 elif (LA58_24 == START) : alt58 = 1 elif (LA58_11 == INT) : LA58_14 = self.input.LA(7) if (LA58_14 == R_PAREN) : LA58_16 = self.input.LA(8) if (LA58_16 == COMMA) : LA58_18 = self.input.LA(9) if (LA58_18 == L_PAREN) : LA58_19 = self.input.LA(10) if (LA58_19 == INT) : LA58_20 = self.input.LA(11) if (LA58_20 == COMMA) : LA58_21 = self.input.LA(12) if (LA58_21 == INT) : LA58_22 = self.input.LA(13) if (LA58_22 == R_PAREN) : LA58_23 = self.input.LA(14) if (LA58_23 == 225) : LA58_24 = self.input.LA(15) if (LA58_24 == 228) : LA58_25 = self.input.LA(16) if (LA58_25 == KEEP) : LA58_26 = self.input.LA(17) if (LA58_26 == SPECIFIC) : LA58_27 = self.input.LA(18) if (LA58_27 == GEODE) : LA58_28 = self.input.LA(19) if (LA58_28 == HYPERLINK) : LA58_12 = self.input.LA(20) if (LA58_12 == STRING) : LA58_15 = self.input.LA(21) if (LA58_15 == 225) : LA58_17 = self.input.LA(22) if (LA58_17 == START) : alt58 = 1 elif (LA58_24 == START) : alt58 = 1 elif (LA58_1 == KEEP) : LA58_5 = self.input.LA(3) if (LA58_5 == SPECIFIC) : LA58_7 = self.input.LA(4) if (LA58_7 == GEODE) : LA58_10 = self.input.LA(5) if (LA58_10 == HYPERLINK) : LA58_12 = self.input.LA(6) if (LA58_12 == STRING) : LA58_15 = self.input.LA(7) if (LA58_15 == 225) : LA58_17 = self.input.LA(8) if (LA58_17 == START) : alt58 = 1 elif (LA58_0 == START) : alt58 = 1 if alt58 == 1: # sdl92.g:456:17: start pass self._state.following.append(self.FOLLOW_start_in_processBody4976) start195 = self.start() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, start195.tree) # sdl92.g:456:24: ( state | floating_label )* while True: #loop59 alt59 = 3 LA59 = self.input.LA(1) if LA59 in {228}: LA59_2 = self.input.LA(2) if (LA59_2 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA59_5 = self.input.LA(3) if (LA59_5 == L_PAREN) : LA59_7 = self.input.LA(4) if (LA59_7 == DASH) : LA59_9 = self.input.LA(5) if (LA59_9 == INT) : LA59_10 = self.input.LA(6) if (LA59_10 == COMMA) : LA59_12 = self.input.LA(7) if (LA59_12 == DASH) : LA59_14 = self.input.LA(8) if (LA59_14 == INT) : LA59_15 = self.input.LA(9) if (LA59_15 == R_PAREN) : LA59_17 = self.input.LA(10) if (LA59_17 == COMMA) : LA59_19 = self.input.LA(11) if (LA59_19 == L_PAREN) : LA59_20 = self.input.LA(12) if (LA59_20 == INT) : LA59_21 = self.input.LA(13) if (LA59_21 == COMMA) : LA59_22 = self.input.LA(14) if (LA59_22 == INT) : LA59_23 = self.input.LA(15) if (LA59_23 == R_PAREN) : LA59_24 = self.input.LA(16) if (LA59_24 == 225) : LA59 = self.input.LA(17) if LA59 in {228}: LA59_26 = self.input.LA(18) if (LA59_26 == KEEP) : LA59_27 = self.input.LA(19) if (LA59_27 == SPECIFIC) : LA59_28 = self.input.LA(20) if (LA59_28 == GEODE) : LA59_29 = self.input.LA(21) if (LA59_29 == HYPERLINK) : LA59_13 = self.input.LA(22) if (LA59_13 == STRING) : LA59_16 = self.input.LA(23) if (LA59_16 == 225) : LA59_18 = self.input.LA(24) if (LA59_18 == STATE) : alt59 = 1 elif (LA59_18 == CONNECTION) : alt59 = 2 elif LA59 in {STATE}: alt59 = 1 elif LA59 in {CONNECTION}: alt59 = 2 elif (LA59_12 == INT) : LA59_15 = self.input.LA(8) if (LA59_15 == R_PAREN) : LA59_17 = self.input.LA(9) if (LA59_17 == COMMA) : LA59_19 = self.input.LA(10) if (LA59_19 == L_PAREN) : LA59_20 = self.input.LA(11) if (LA59_20 == INT) : LA59_21 = self.input.LA(12) if (LA59_21 == COMMA) : LA59_22 = self.input.LA(13) if (LA59_22 == INT) : LA59_23 = self.input.LA(14) if (LA59_23 == R_PAREN) : LA59_24 = self.input.LA(15) if (LA59_24 == 225) : LA59 = self.input.LA(16) if LA59 in {228}: LA59_26 = self.input.LA(17) if (LA59_26 == KEEP) : LA59_27 = self.input.LA(18) if (LA59_27 == SPECIFIC) : LA59_28 = self.input.LA(19) if (LA59_28 == GEODE) : LA59_29 = self.input.LA(20) if (LA59_29 == HYPERLINK) : LA59_13 = self.input.LA(21) if (LA59_13 == STRING) : LA59_16 = self.input.LA(22) if (LA59_16 == 225) : LA59_18 = self.input.LA(23) if (LA59_18 == STATE) : alt59 = 1 elif (LA59_18 == CONNECTION) : alt59 = 2 elif LA59 in {STATE}: alt59 = 1 elif LA59 in {CONNECTION}: alt59 = 2 elif (LA59_7 == INT) : LA59_10 = self.input.LA(5) if (LA59_10 == COMMA) : LA59_12 = self.input.LA(6) if (LA59_12 == DASH) : LA59_14 = self.input.LA(7) if (LA59_14 == INT) : LA59_15 = self.input.LA(8) if (LA59_15 == R_PAREN) : LA59_17 = self.input.LA(9) if (LA59_17 == COMMA) : LA59_19 = self.input.LA(10) if (LA59_19 == L_PAREN) : LA59_20 = self.input.LA(11) if (LA59_20 == INT) : LA59_21 = self.input.LA(12) if (LA59_21 == COMMA) : LA59_22 = self.input.LA(13) if (LA59_22 == INT) : LA59_23 = self.input.LA(14) if (LA59_23 == R_PAREN) : LA59_24 = self.input.LA(15) if (LA59_24 == 225) : LA59 = self.input.LA(16) if LA59 in {228}: LA59_26 = self.input.LA(17) if (LA59_26 == KEEP) : LA59_27 = self.input.LA(18) if (LA59_27 == SPECIFIC) : LA59_28 = self.input.LA(19) if (LA59_28 == GEODE) : LA59_29 = self.input.LA(20) if (LA59_29 == HYPERLINK) : LA59_13 = self.input.LA(21) if (LA59_13 == STRING) : LA59_16 = self.input.LA(22) if (LA59_16 == 225) : LA59_18 = self.input.LA(23) if (LA59_18 == STATE) : alt59 = 1 elif (LA59_18 == CONNECTION) : alt59 = 2 elif LA59 in {STATE}: alt59 = 1 elif LA59 in {CONNECTION}: alt59 = 2 elif (LA59_12 == INT) : LA59_15 = self.input.LA(7) if (LA59_15 == R_PAREN) : LA59_17 = self.input.LA(8) if (LA59_17 == COMMA) : LA59_19 = self.input.LA(9) if (LA59_19 == L_PAREN) : LA59_20 = self.input.LA(10) if (LA59_20 == INT) : LA59_21 = self.input.LA(11) if (LA59_21 == COMMA) : LA59_22 = self.input.LA(12) if (LA59_22 == INT) : LA59_23 = self.input.LA(13) if (LA59_23 == R_PAREN) : LA59_24 = self.input.LA(14) if (LA59_24 == 225) : LA59 = self.input.LA(15) if LA59 in {228}: LA59_26 = self.input.LA(16) if (LA59_26 == KEEP) : LA59_27 = self.input.LA(17) if (LA59_27 == SPECIFIC) : LA59_28 = self.input.LA(18) if (LA59_28 == GEODE) : LA59_29 = self.input.LA(19) if (LA59_29 == HYPERLINK) : LA59_13 = self.input.LA(20) if (LA59_13 == STRING) : LA59_16 = self.input.LA(21) if (LA59_16 == 225) : LA59_18 = self.input.LA(22) if (LA59_18 == STATE) : alt59 = 1 elif (LA59_18 == CONNECTION) : alt59 = 2 elif LA59 in {STATE}: alt59 = 1 elif LA59 in {CONNECTION}: alt59 = 2 elif (LA59_2 == KEEP) : LA59_6 = self.input.LA(3) if (LA59_6 == SPECIFIC) : LA59_8 = self.input.LA(4) if (LA59_8 == GEODE) : LA59_11 = self.input.LA(5) if (LA59_11 == HYPERLINK) : LA59_13 = self.input.LA(6) if (LA59_13 == STRING) : LA59_16 = self.input.LA(7) if (LA59_16 == 225) : LA59_18 = self.input.LA(8) if (LA59_18 == STATE) : alt59 = 1 elif (LA59_18 == CONNECTION) : alt59 = 2 elif LA59 in {STATE}: alt59 = 1 elif LA59 in {CONNECTION}: alt59 = 2 if alt59 == 1: # sdl92.g:456:25: state pass self._state.following.append(self.FOLLOW_state_in_processBody4980) state196 = self.state() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, state196.tree) elif alt59 == 2: # sdl92.g:456:33: floating_label pass self._state.following.append(self.FOLLOW_floating_label_in_processBody4984) floating_label197 = self.floating_label() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, floating_label197.tree) else: break #loop59 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "processBody" class start_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "start" # sdl92.g:460:1: start : ( cif )? ( hyperlink )? START (name= state_entry_point_name )? end ( transition )? -> ^( START ( cif )? ( hyperlink )? ( $name)? ( end )? ( transition )? ) ; def start(self, ): retval = self.start_return() retval.start = self.input.LT(1) root_0 = None START200 = None name = None cif198 = None hyperlink199 = None end201 = None transition202 = None START200_tree = None stream_START = RewriteRuleTokenStream(self._adaptor, "token START") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_state_entry_point_name = RewriteRuleSubtreeStream(self._adaptor, "rule state_entry_point_name") stream_transition = RewriteRuleSubtreeStream(self._adaptor, "rule transition") try: try: # sdl92.g:461:9: ( ( cif )? ( hyperlink )? START (name= state_entry_point_name )? end ( transition )? -> ^( START ( cif )? ( hyperlink )? ( $name)? ( end )? ( transition )? ) ) # sdl92.g:461:17: ( cif )? ( hyperlink )? START (name= state_entry_point_name )? end ( transition )? pass # sdl92.g:461:17: ( cif )? alt60 = 2 LA60_0 = self.input.LA(1) if (LA60_0 == 228) : LA60_1 = self.input.LA(2) if (LA60_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt60 = 1 if alt60 == 1: # sdl92.g:461:17: cif pass self._state.following.append(self.FOLLOW_cif_in_start5018) cif198 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif198.tree) # sdl92.g:462:17: ( hyperlink )? alt61 = 2 LA61_0 = self.input.LA(1) if (LA61_0 == 228) : alt61 = 1 if alt61 == 1: # sdl92.g:462:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_start5037) hyperlink199 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink199.tree) START200 = self.match(self.input, START, self.FOLLOW_START_in_start5056) if self._state.backtracking == 0: stream_START.add(START200) # sdl92.g:463:27: (name= state_entry_point_name )? alt62 = 2 LA62_0 = self.input.LA(1) if (LA62_0 == ID) : alt62 = 1 if alt62 == 1: # sdl92.g:463:27: name= state_entry_point_name pass self._state.following.append(self.FOLLOW_state_entry_point_name_in_start5060) name = self.state_entry_point_name() self._state.following.pop() if self._state.backtracking == 0: stream_state_entry_point_name.add(name.tree) self._state.following.append(self.FOLLOW_end_in_start5063) end201 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end201.tree) # sdl92.g:464:17: ( transition )? alt63 = 2 LA63 = self.input.LA(1) if LA63 in {228}: LA63_1 = self.input.LA(2) if (LA63_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA63_5 = self.input.LA(3) if (LA63_5 == L_PAREN) : LA63_7 = self.input.LA(4) if (LA63_7 == DASH) : LA63_9 = self.input.LA(5) if (LA63_9 == INT) : LA63_10 = self.input.LA(6) if (LA63_10 == COMMA) : LA63_12 = self.input.LA(7) if (LA63_12 == DASH) : LA63_14 = self.input.LA(8) if (LA63_14 == INT) : LA63_15 = self.input.LA(9) if (LA63_15 == R_PAREN) : LA63_17 = self.input.LA(10) if (LA63_17 == COMMA) : LA63_19 = self.input.LA(11) if (LA63_19 == L_PAREN) : LA63_20 = self.input.LA(12) if (LA63_20 == INT) : LA63_21 = self.input.LA(13) if (LA63_21 == COMMA) : LA63_22 = self.input.LA(14) if (LA63_22 == INT) : LA63_23 = self.input.LA(15) if (LA63_23 == R_PAREN) : LA63_24 = self.input.LA(16) if (LA63_24 == 225) : LA63_25 = self.input.LA(17) if (LA63_25 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_25 == 228) : LA63_26 = self.input.LA(18) if (LA63_26 == KEEP) : LA63_27 = self.input.LA(19) if (LA63_27 == SPECIFIC) : LA63_28 = self.input.LA(20) if (LA63_28 == GEODE) : LA63_29 = self.input.LA(21) if (LA63_29 == HYPERLINK) : LA63_13 = self.input.LA(22) if (LA63_13 == STRING) : LA63_16 = self.input.LA(23) if (LA63_16 == 225) : LA63_18 = self.input.LA(24) if (LA63_18 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_12 == INT) : LA63_15 = self.input.LA(8) if (LA63_15 == R_PAREN) : LA63_17 = self.input.LA(9) if (LA63_17 == COMMA) : LA63_19 = self.input.LA(10) if (LA63_19 == L_PAREN) : LA63_20 = self.input.LA(11) if (LA63_20 == INT) : LA63_21 = self.input.LA(12) if (LA63_21 == COMMA) : LA63_22 = self.input.LA(13) if (LA63_22 == INT) : LA63_23 = self.input.LA(14) if (LA63_23 == R_PAREN) : LA63_24 = self.input.LA(15) if (LA63_24 == 225) : LA63_25 = self.input.LA(16) if (LA63_25 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_25 == 228) : LA63_26 = self.input.LA(17) if (LA63_26 == KEEP) : LA63_27 = self.input.LA(18) if (LA63_27 == SPECIFIC) : LA63_28 = self.input.LA(19) if (LA63_28 == GEODE) : LA63_29 = self.input.LA(20) if (LA63_29 == HYPERLINK) : LA63_13 = self.input.LA(21) if (LA63_13 == STRING) : LA63_16 = self.input.LA(22) if (LA63_16 == 225) : LA63_18 = self.input.LA(23) if (LA63_18 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_7 == INT) : LA63_10 = self.input.LA(5) if (LA63_10 == COMMA) : LA63_12 = self.input.LA(6) if (LA63_12 == DASH) : LA63_14 = self.input.LA(7) if (LA63_14 == INT) : LA63_15 = self.input.LA(8) if (LA63_15 == R_PAREN) : LA63_17 = self.input.LA(9) if (LA63_17 == COMMA) : LA63_19 = self.input.LA(10) if (LA63_19 == L_PAREN) : LA63_20 = self.input.LA(11) if (LA63_20 == INT) : LA63_21 = self.input.LA(12) if (LA63_21 == COMMA) : LA63_22 = self.input.LA(13) if (LA63_22 == INT) : LA63_23 = self.input.LA(14) if (LA63_23 == R_PAREN) : LA63_24 = self.input.LA(15) if (LA63_24 == 225) : LA63_25 = self.input.LA(16) if (LA63_25 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_25 == 228) : LA63_26 = self.input.LA(17) if (LA63_26 == KEEP) : LA63_27 = self.input.LA(18) if (LA63_27 == SPECIFIC) : LA63_28 = self.input.LA(19) if (LA63_28 == GEODE) : LA63_29 = self.input.LA(20) if (LA63_29 == HYPERLINK) : LA63_13 = self.input.LA(21) if (LA63_13 == STRING) : LA63_16 = self.input.LA(22) if (LA63_16 == 225) : LA63_18 = self.input.LA(23) if (LA63_18 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_12 == INT) : LA63_15 = self.input.LA(7) if (LA63_15 == R_PAREN) : LA63_17 = self.input.LA(8) if (LA63_17 == COMMA) : LA63_19 = self.input.LA(9) if (LA63_19 == L_PAREN) : LA63_20 = self.input.LA(10) if (LA63_20 == INT) : LA63_21 = self.input.LA(11) if (LA63_21 == COMMA) : LA63_22 = self.input.LA(12) if (LA63_22 == INT) : LA63_23 = self.input.LA(13) if (LA63_23 == R_PAREN) : LA63_24 = self.input.LA(14) if (LA63_24 == 225) : LA63_25 = self.input.LA(15) if (LA63_25 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_25 == 228) : LA63_26 = self.input.LA(16) if (LA63_26 == KEEP) : LA63_27 = self.input.LA(17) if (LA63_27 == SPECIFIC) : LA63_28 = self.input.LA(18) if (LA63_28 == GEODE) : LA63_29 = self.input.LA(19) if (LA63_29 == HYPERLINK) : LA63_13 = self.input.LA(20) if (LA63_13 == STRING) : LA63_16 = self.input.LA(21) if (LA63_16 == 225) : LA63_18 = self.input.LA(22) if (LA63_18 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif (LA63_1 == KEEP) : LA63_6 = self.input.LA(3) if (LA63_6 == SPECIFIC) : LA63_8 = self.input.LA(4) if (LA63_8 == GEODE) : LA63_11 = self.input.LA(5) if (LA63_11 == HYPERLINK) : LA63_13 = self.input.LA(6) if (LA63_13 == STRING) : LA63_16 = self.input.LA(7) if (LA63_16 == 225) : LA63_18 = self.input.LA(8) if (LA63_18 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt63 = 1 elif LA63 in {ID}: LA63_2 = self.input.LA(2) if (LA63_2 in {ASSIG_OP, DOT, L_PAREN, 223, 229}) : alt63 = 1 elif LA63 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, JOIN, NEXTSTATE, OUTPUT, RESET, RETURN, SET, STOP, STRING, TASK}: alt63 = 1 if alt63 == 1: # sdl92.g:464:17: transition pass self._state.following.append(self.FOLLOW_transition_in_start5081) transition202 = self.transition() self._state.following.pop() if self._state.backtracking == 0: stream_transition.add(transition202.tree) # AST Rewrite # elements: START, cif, hyperlink, name, end, transition # token labels: # rule labels: name, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if name is not None: stream_name = RewriteRuleSubtreeStream(self._adaptor, "rule name", name.tree) else: stream_name = RewriteRuleSubtreeStream(self._adaptor, "token name", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 465:9: -> ^( START ( cif )? ( hyperlink )? ( $name)? ( end )? ( transition )? ) # sdl92.g:465:17: ^( START ( cif )? ( hyperlink )? ( $name)? ( end )? ( transition )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_START.nextNode() , root_1) # sdl92.g:465:25: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:465:30: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); # sdl92.g:465:42: ( $name)? if stream_name.hasNext(): self._adaptor.addChild(root_1, stream_name.nextTree()) stream_name.reset(); # sdl92.g:465:48: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); # sdl92.g:465:53: ( transition )? if stream_transition.hasNext(): self._adaptor.addChild(root_1, stream_transition.nextTree()) stream_transition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "start" class floating_label_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "floating_label" # sdl92.g:469:1: floating_label : ( cif )? ( hyperlink )? CONNECTION connector_name ':' ( transition )? ( cif_end_label )? ENDCONNECTION SEMI -> ^( FLOATING_LABEL ( cif )? ( hyperlink )? connector_name ( transition )? ) ; def floating_label(self, ): retval = self.floating_label_return() retval.start = self.input.LT(1) root_0 = None CONNECTION205 = None char_literal207 = None ENDCONNECTION210 = None SEMI211 = None cif203 = None hyperlink204 = None connector_name206 = None transition208 = None cif_end_label209 = None CONNECTION205_tree = None char_literal207_tree = None ENDCONNECTION210_tree = None SEMI211_tree = None stream_CONNECTION = RewriteRuleTokenStream(self._adaptor, "token CONNECTION") stream_ENDCONNECTION = RewriteRuleTokenStream(self._adaptor, "token ENDCONNECTION") stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") stream_229 = RewriteRuleTokenStream(self._adaptor, "token 229") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_cif_end_label = RewriteRuleSubtreeStream(self._adaptor, "rule cif_end_label") stream_connector_name = RewriteRuleSubtreeStream(self._adaptor, "rule connector_name") stream_transition = RewriteRuleSubtreeStream(self._adaptor, "rule transition") try: try: # sdl92.g:470:9: ( ( cif )? ( hyperlink )? CONNECTION connector_name ':' ( transition )? ( cif_end_label )? ENDCONNECTION SEMI -> ^( FLOATING_LABEL ( cif )? ( hyperlink )? connector_name ( transition )? ) ) # sdl92.g:470:17: ( cif )? ( hyperlink )? CONNECTION connector_name ':' ( transition )? ( cif_end_label )? ENDCONNECTION SEMI pass # sdl92.g:470:17: ( cif )? alt64 = 2 LA64_0 = self.input.LA(1) if (LA64_0 == 228) : LA64_1 = self.input.LA(2) if (LA64_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt64 = 1 if alt64 == 1: # sdl92.g:470:17: cif pass self._state.following.append(self.FOLLOW_cif_in_floating_label5149) cif203 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif203.tree) # sdl92.g:471:17: ( hyperlink )? alt65 = 2 LA65_0 = self.input.LA(1) if (LA65_0 == 228) : alt65 = 1 if alt65 == 1: # sdl92.g:471:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_floating_label5168) hyperlink204 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink204.tree) CONNECTION205 = self.match(self.input, CONNECTION, self.FOLLOW_CONNECTION_in_floating_label5187) if self._state.backtracking == 0: stream_CONNECTION.add(CONNECTION205) self._state.following.append(self.FOLLOW_connector_name_in_floating_label5189) connector_name206 = self.connector_name() self._state.following.pop() if self._state.backtracking == 0: stream_connector_name.add(connector_name206.tree) char_literal207 = self.match(self.input, 229, self.FOLLOW_229_in_floating_label5191) if self._state.backtracking == 0: stream_229.add(char_literal207) # sdl92.g:473:17: ( transition )? alt66 = 2 LA66_0 = self.input.LA(1) if (LA66_0 == 228) : LA66_1 = self.input.LA(2) if (LA66_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, KEEP, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt66 = 1 elif (LA66_0 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, JOIN, NEXTSTATE, OUTPUT, RESET, RETURN, SET, STOP, STRING, TASK}) : alt66 = 1 if alt66 == 1: # sdl92.g:473:17: transition pass self._state.following.append(self.FOLLOW_transition_in_floating_label5209) transition208 = self.transition() self._state.following.pop() if self._state.backtracking == 0: stream_transition.add(transition208.tree) # sdl92.g:474:17: ( cif_end_label )? alt67 = 2 LA67_0 = self.input.LA(1) if (LA67_0 == 228) : alt67 = 1 if alt67 == 1: # sdl92.g:474:17: cif_end_label pass self._state.following.append(self.FOLLOW_cif_end_label_in_floating_label5228) cif_end_label209 = self.cif_end_label() self._state.following.pop() if self._state.backtracking == 0: stream_cif_end_label.add(cif_end_label209.tree) ENDCONNECTION210 = self.match(self.input, ENDCONNECTION, self.FOLLOW_ENDCONNECTION_in_floating_label5247) if self._state.backtracking == 0: stream_ENDCONNECTION.add(ENDCONNECTION210) SEMI211 = self.match(self.input, SEMI, self.FOLLOW_SEMI_in_floating_label5249) if self._state.backtracking == 0: stream_SEMI.add(SEMI211) # AST Rewrite # elements: cif, hyperlink, connector_name, transition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 476:9: -> ^( FLOATING_LABEL ( cif )? ( hyperlink )? connector_name ( transition )? ) # sdl92.g:476:17: ^( FLOATING_LABEL ( cif )? ( hyperlink )? connector_name ( transition )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(FLOATING_LABEL, "FLOATING_LABEL") , root_1) # sdl92.g:476:34: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:476:39: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); self._adaptor.addChild(root_1, stream_connector_name.nextTree()) # sdl92.g:476:65: ( transition )? if stream_transition.hasNext(): self._adaptor.addChild(root_1, stream_transition.nextTree()) stream_transition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "floating_label" class state_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state" # sdl92.g:480:1: state : ( cif )? ( hyperlink )? STATE statelist ( via )? (e= end | SEMI ) ( state_part )* ENDSTATE ( statename )? f= end -> ^( STATE ( cif )? ( hyperlink )? ( $e)? statelist ( via )? ( state_part )* ) ; def state(self, ): retval = self.state_return() retval.start = self.input.LT(1) root_0 = None STATE214 = None SEMI217 = None ENDSTATE219 = None e = None f = None cif212 = None hyperlink213 = None statelist215 = None via216 = None state_part218 = None statename220 = None STATE214_tree = None SEMI217_tree = None ENDSTATE219_tree = None stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") stream_STATE = RewriteRuleTokenStream(self._adaptor, "token STATE") stream_ENDSTATE = RewriteRuleTokenStream(self._adaptor, "token ENDSTATE") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_statelist = RewriteRuleSubtreeStream(self._adaptor, "rule statelist") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_statename = RewriteRuleSubtreeStream(self._adaptor, "rule statename") stream_state_part = RewriteRuleSubtreeStream(self._adaptor, "rule state_part") stream_via = RewriteRuleSubtreeStream(self._adaptor, "rule via") try: try: # sdl92.g:481:9: ( ( cif )? ( hyperlink )? STATE statelist ( via )? (e= end | SEMI ) ( state_part )* ENDSTATE ( statename )? f= end -> ^( STATE ( cif )? ( hyperlink )? ( $e)? statelist ( via )? ( state_part )* ) ) # sdl92.g:481:17: ( cif )? ( hyperlink )? STATE statelist ( via )? (e= end | SEMI ) ( state_part )* ENDSTATE ( statename )? f= end pass # sdl92.g:481:17: ( cif )? alt68 = 2 LA68_0 = self.input.LA(1) if (LA68_0 == 228) : LA68_1 = self.input.LA(2) if (LA68_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt68 = 1 if alt68 == 1: # sdl92.g:481:17: cif pass self._state.following.append(self.FOLLOW_cif_in_state5311) cif212 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif212.tree) # sdl92.g:482:17: ( hyperlink )? alt69 = 2 LA69_0 = self.input.LA(1) if (LA69_0 == 228) : alt69 = 1 if alt69 == 1: # sdl92.g:482:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_state5330) hyperlink213 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink213.tree) STATE214 = self.match(self.input, STATE, self.FOLLOW_STATE_in_state5349) if self._state.backtracking == 0: stream_STATE.add(STATE214) self._state.following.append(self.FOLLOW_statelist_in_state5351) statelist215 = self.statelist() self._state.following.pop() if self._state.backtracking == 0: stream_statelist.add(statelist215.tree) # sdl92.g:483:33: ( via )? alt70 = 2 LA70_0 = self.input.LA(1) if (LA70_0 == VIA) : alt70 = 1 if alt70 == 1: # sdl92.g:483:33: via pass self._state.following.append(self.FOLLOW_via_in_state5353) via216 = self.via() self._state.following.pop() if self._state.backtracking == 0: stream_via.add(via216.tree) # sdl92.g:483:38: (e= end | SEMI ) alt71 = 2 LA71_0 = self.input.LA(1) if (LA71_0 in {COMMENT, 228}) : alt71 = 1 elif (LA71_0 == SEMI) : LA71_2 = self.input.LA(2) if (self.synpred95_sdl92()) : alt71 = 1 elif (True) : alt71 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 71, 2, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 71, 0, self.input) raise nvae if alt71 == 1: # sdl92.g:483:39: e= end pass self._state.following.append(self.FOLLOW_end_in_state5359) e = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(e.tree) elif alt71 == 2: # sdl92.g:483:47: SEMI pass SEMI217 = self.match(self.input, SEMI, self.FOLLOW_SEMI_in_state5363) if self._state.backtracking == 0: stream_SEMI.add(SEMI217) # sdl92.g:484:17: ( state_part )* while True: #loop72 alt72 = 2 LA72_0 = self.input.LA(1) if (LA72_0 in {CONNECT, INPUT, PROVIDED, SAVE, 228}) : alt72 = 1 if alt72 == 1: # sdl92.g:484:18: state_part pass self._state.following.append(self.FOLLOW_state_part_in_state5384) state_part218 = self.state_part() self._state.following.pop() if self._state.backtracking == 0: stream_state_part.add(state_part218.tree) else: break #loop72 ENDSTATE219 = self.match(self.input, ENDSTATE, self.FOLLOW_ENDSTATE_in_state5404) if self._state.backtracking == 0: stream_ENDSTATE.add(ENDSTATE219) # sdl92.g:485:26: ( statename )? alt73 = 2 LA73_0 = self.input.LA(1) if (LA73_0 == ID) : alt73 = 1 if alt73 == 1: # sdl92.g:485:26: statename pass self._state.following.append(self.FOLLOW_statename_in_state5406) statename220 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename220.tree) self._state.following.append(self.FOLLOW_end_in_state5411) f = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(f.tree) # AST Rewrite # elements: STATE, cif, hyperlink, e, statelist, via, state_part # token labels: # rule labels: e, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if e is not None: stream_e = RewriteRuleSubtreeStream(self._adaptor, "rule e", e.tree) else: stream_e = RewriteRuleSubtreeStream(self._adaptor, "token e", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 486:9: -> ^( STATE ( cif )? ( hyperlink )? ( $e)? statelist ( via )? ( state_part )* ) # sdl92.g:486:17: ^( STATE ( cif )? ( hyperlink )? ( $e)? statelist ( via )? ( state_part )* ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_STATE.nextNode() , root_1) # sdl92.g:486:25: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:486:30: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); # sdl92.g:486:42: ( $e)? if stream_e.hasNext(): self._adaptor.addChild(root_1, stream_e.nextTree()) stream_e.reset(); self._adaptor.addChild(root_1, stream_statelist.nextTree()) # sdl92.g:486:55: ( via )? if stream_via.hasNext(): self._adaptor.addChild(root_1, stream_via.nextTree()) stream_via.reset(); # sdl92.g:486:60: ( state_part )* while stream_state_part.hasNext(): self._adaptor.addChild(root_1, stream_state_part.nextTree()) stream_state_part.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state" class statelist_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "statelist" # sdl92.g:490:1: statelist : ( ( ( statename ) ( ',' statename )* ) -> ^( STATELIST ( statename )+ ) | ASTERISK ( exception_state )? -> ^( ASTERISK ( exception_state )? ) ); def statelist(self, ): retval = self.statelist_return() retval.start = self.input.LT(1) root_0 = None char_literal222 = None ASTERISK224 = None statename221 = None statename223 = None exception_state225 = None char_literal222_tree = None ASTERISK224_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_ASTERISK = RewriteRuleTokenStream(self._adaptor, "token ASTERISK") stream_exception_state = RewriteRuleSubtreeStream(self._adaptor, "rule exception_state") stream_statename = RewriteRuleSubtreeStream(self._adaptor, "rule statename") try: try: # sdl92.g:491:9: ( ( ( statename ) ( ',' statename )* ) -> ^( STATELIST ( statename )+ ) | ASTERISK ( exception_state )? -> ^( ASTERISK ( exception_state )? ) ) alt76 = 2 LA76_0 = self.input.LA(1) if (LA76_0 == ID) : alt76 = 1 elif (LA76_0 == ASTERISK) : alt76 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 76, 0, self.input) raise nvae if alt76 == 1: # sdl92.g:491:17: ( ( statename ) ( ',' statename )* ) pass # sdl92.g:491:17: ( ( statename ) ( ',' statename )* ) # sdl92.g:491:18: ( statename ) ( ',' statename )* pass # sdl92.g:491:18: ( statename ) # sdl92.g:491:19: statename pass self._state.following.append(self.FOLLOW_statename_in_statelist5482) statename221 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename221.tree) # sdl92.g:491:29: ( ',' statename )* while True: #loop74 alt74 = 2 LA74_0 = self.input.LA(1) if (LA74_0 == COMMA) : alt74 = 1 if alt74 == 1: # sdl92.g:491:30: ',' statename pass char_literal222 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_statelist5485) if self._state.backtracking == 0: stream_COMMA.add(char_literal222) self._state.following.append(self.FOLLOW_statename_in_statelist5487) statename223 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename223.tree) else: break #loop74 # AST Rewrite # elements: statename # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 492:9: -> ^( STATELIST ( statename )+ ) # sdl92.g:492:17: ^( STATELIST ( statename )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(STATELIST, "STATELIST") , root_1) # sdl92.g:492:29: ( statename )+ if not (stream_statename.hasNext()): raise RewriteEarlyExitException() while stream_statename.hasNext(): self._adaptor.addChild(root_1, stream_statename.nextTree()) stream_statename.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 elif alt76 == 2: # sdl92.g:493:19: ASTERISK ( exception_state )? pass ASTERISK224 = self.match(self.input, ASTERISK, self.FOLLOW_ASTERISK_in_statelist5532) if self._state.backtracking == 0: stream_ASTERISK.add(ASTERISK224) # sdl92.g:493:28: ( exception_state )? alt75 = 2 LA75_0 = self.input.LA(1) if (LA75_0 == L_PAREN) : alt75 = 1 if alt75 == 1: # sdl92.g:493:28: exception_state pass self._state.following.append(self.FOLLOW_exception_state_in_statelist5534) exception_state225 = self.exception_state() self._state.following.pop() if self._state.backtracking == 0: stream_exception_state.add(exception_state225.tree) # AST Rewrite # elements: ASTERISK, exception_state # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 494:9: -> ^( ASTERISK ( exception_state )? ) # sdl92.g:494:17: ^( ASTERISK ( exception_state )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_ASTERISK.nextNode() , root_1) # sdl92.g:494:28: ( exception_state )? if stream_exception_state.hasNext(): self._adaptor.addChild(root_1, stream_exception_state.nextTree()) stream_exception_state.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "statelist" class exception_state_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "exception_state" # sdl92.g:498:1: exception_state : '(' statename ( ',' statename )* ')' -> ( statename )+ ; def exception_state(self, ): retval = self.exception_state_return() retval.start = self.input.LT(1) root_0 = None char_literal226 = None char_literal228 = None char_literal230 = None statename227 = None statename229 = None char_literal226_tree = None char_literal228_tree = None char_literal230_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_L_PAREN = RewriteRuleTokenStream(self._adaptor, "token L_PAREN") stream_R_PAREN = RewriteRuleTokenStream(self._adaptor, "token R_PAREN") stream_statename = RewriteRuleSubtreeStream(self._adaptor, "rule statename") try: try: # sdl92.g:499:9: ( '(' statename ( ',' statename )* ')' -> ( statename )+ ) # sdl92.g:499:17: '(' statename ( ',' statename )* ')' pass char_literal226 = self.match(self.input, L_PAREN, self.FOLLOW_L_PAREN_in_exception_state5589) if self._state.backtracking == 0: stream_L_PAREN.add(char_literal226) self._state.following.append(self.FOLLOW_statename_in_exception_state5591) statename227 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename227.tree) # sdl92.g:499:31: ( ',' statename )* while True: #loop77 alt77 = 2 LA77_0 = self.input.LA(1) if (LA77_0 == COMMA) : alt77 = 1 if alt77 == 1: # sdl92.g:499:32: ',' statename pass char_literal228 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_exception_state5594) if self._state.backtracking == 0: stream_COMMA.add(char_literal228) self._state.following.append(self.FOLLOW_statename_in_exception_state5596) statename229 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename229.tree) else: break #loop77 char_literal230 = self.match(self.input, R_PAREN, self.FOLLOW_R_PAREN_in_exception_state5600) if self._state.backtracking == 0: stream_R_PAREN.add(char_literal230) # AST Rewrite # elements: statename # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 500:9: -> ( statename )+ # sdl92.g:500:17: ( statename )+ if not (stream_statename.hasNext()): raise RewriteEarlyExitException() while stream_statename.hasNext(): self._adaptor.addChild(root_0, stream_statename.nextTree()) stream_statename.reset() retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "exception_state" class composite_state_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "composite_state" # sdl92.g:505:1: composite_state : ( composite_state_graph | state_aggregation ); def composite_state(self, ): retval = self.composite_state_return() retval.start = self.input.LT(1) root_0 = None composite_state_graph231 = None state_aggregation232 = None try: try: # sdl92.g:506:9: ( composite_state_graph | state_aggregation ) alt78 = 2 LA78_0 = self.input.LA(1) if (LA78_0 == STATE) : LA78_1 = self.input.LA(2) if (LA78_1 == AGGREGATION) : alt78 = 2 elif (LA78_1 == ID) : alt78 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 78, 1, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 78, 0, self.input) raise nvae if alt78 == 1: # sdl92.g:506:17: composite_state_graph pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_composite_state_graph_in_composite_state5651) composite_state_graph231 = self.composite_state_graph() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, composite_state_graph231.tree) elif alt78 == 2: # sdl92.g:507:19: state_aggregation pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_state_aggregation_in_composite_state5671) state_aggregation232 = self.state_aggregation() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, state_aggregation232.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "composite_state" class composite_state_preamble_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "composite_state_preamble" # sdl92.g:511:1: composite_state_preamble : STATE ( AGGREGATION )? statename end SUBSTRUCTURE ; def composite_state_preamble(self, ): retval = self.composite_state_preamble_return() retval.start = self.input.LT(1) root_0 = None STATE233 = None AGGREGATION234 = None SUBSTRUCTURE237 = None statename235 = None end236 = None STATE233_tree = None AGGREGATION234_tree = None SUBSTRUCTURE237_tree = None try: try: # sdl92.g:512:9: ( STATE ( AGGREGATION )? statename end SUBSTRUCTURE ) # sdl92.g:512:17: STATE ( AGGREGATION )? statename end SUBSTRUCTURE pass root_0 = self._adaptor.nil() STATE233 = self.match(self.input, STATE, self.FOLLOW_STATE_in_composite_state_preamble5703) if self._state.backtracking == 0: STATE233_tree = self._adaptor.createWithPayload(STATE233) self._adaptor.addChild(root_0, STATE233_tree) # sdl92.g:512:23: ( AGGREGATION )? alt79 = 2 LA79_0 = self.input.LA(1) if (LA79_0 == AGGREGATION) : alt79 = 1 if alt79 == 1: # sdl92.g:512:23: AGGREGATION pass AGGREGATION234 = self.match(self.input, AGGREGATION, self.FOLLOW_AGGREGATION_in_composite_state_preamble5705) if self._state.backtracking == 0: AGGREGATION234_tree = self._adaptor.createWithPayload(AGGREGATION234) self._adaptor.addChild(root_0, AGGREGATION234_tree) self._state.following.append(self.FOLLOW_statename_in_composite_state_preamble5708) statename235 = self.statename() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, statename235.tree) self._state.following.append(self.FOLLOW_end_in_composite_state_preamble5710) end236 = self.end() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, end236.tree) SUBSTRUCTURE237 = self.match(self.input, SUBSTRUCTURE, self.FOLLOW_SUBSTRUCTURE_in_composite_state_preamble5728) if self._state.backtracking == 0: SUBSTRUCTURE237_tree = self._adaptor.createWithPayload(SUBSTRUCTURE237) self._adaptor.addChild(root_0, SUBSTRUCTURE237_tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "composite_state_preamble" class composite_state_graph_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "composite_state_graph" # sdl92.g:516:1: composite_state_graph : STATE statename e= end SUBSTRUCTURE ( connection_points )* body= composite_state_body ENDSUBSTRUCTURE ( statename )? f= end -> ^( COMPOSITE_STATE statename ( connection_points )* $body ( $e)? ) ; def composite_state_graph(self, ): retval = self.composite_state_graph_return() retval.start = self.input.LT(1) root_0 = None STATE238 = None SUBSTRUCTURE240 = None ENDSUBSTRUCTURE242 = None e = None body = None f = None statename239 = None connection_points241 = None statename243 = None STATE238_tree = None SUBSTRUCTURE240_tree = None ENDSUBSTRUCTURE242_tree = None stream_STATE = RewriteRuleTokenStream(self._adaptor, "token STATE") stream_SUBSTRUCTURE = RewriteRuleTokenStream(self._adaptor, "token SUBSTRUCTURE") stream_ENDSUBSTRUCTURE = RewriteRuleTokenStream(self._adaptor, "token ENDSUBSTRUCTURE") stream_connection_points = RewriteRuleSubtreeStream(self._adaptor, "rule connection_points") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_statename = RewriteRuleSubtreeStream(self._adaptor, "rule statename") stream_composite_state_body = RewriteRuleSubtreeStream(self._adaptor, "rule composite_state_body") try: try: # sdl92.g:517:9: ( STATE statename e= end SUBSTRUCTURE ( connection_points )* body= composite_state_body ENDSUBSTRUCTURE ( statename )? f= end -> ^( COMPOSITE_STATE statename ( connection_points )* $body ( $e)? ) ) # sdl92.g:517:17: STATE statename e= end SUBSTRUCTURE ( connection_points )* body= composite_state_body ENDSUBSTRUCTURE ( statename )? f= end pass STATE238 = self.match(self.input, STATE, self.FOLLOW_STATE_in_composite_state_graph5759) if self._state.backtracking == 0: stream_STATE.add(STATE238) self._state.following.append(self.FOLLOW_statename_in_composite_state_graph5761) statename239 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename239.tree) self._state.following.append(self.FOLLOW_end_in_composite_state_graph5765) e = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(e.tree) SUBSTRUCTURE240 = self.match(self.input, SUBSTRUCTURE, self.FOLLOW_SUBSTRUCTURE_in_composite_state_graph5783) if self._state.backtracking == 0: stream_SUBSTRUCTURE.add(SUBSTRUCTURE240) # sdl92.g:519:17: ( connection_points )* while True: #loop80 alt80 = 2 LA80_0 = self.input.LA(1) if (LA80_0 in {IN, OUT}) : alt80 = 1 if alt80 == 1: # sdl92.g:519:17: connection_points pass self._state.following.append(self.FOLLOW_connection_points_in_composite_state_graph5801) connection_points241 = self.connection_points() self._state.following.pop() if self._state.backtracking == 0: stream_connection_points.add(connection_points241.tree) else: break #loop80 self._state.following.append(self.FOLLOW_composite_state_body_in_composite_state_graph5822) body = self.composite_state_body() self._state.following.pop() if self._state.backtracking == 0: stream_composite_state_body.add(body.tree) ENDSUBSTRUCTURE242 = self.match(self.input, ENDSUBSTRUCTURE, self.FOLLOW_ENDSUBSTRUCTURE_in_composite_state_graph5840) if self._state.backtracking == 0: stream_ENDSUBSTRUCTURE.add(ENDSUBSTRUCTURE242) # sdl92.g:521:33: ( statename )? alt81 = 2 LA81_0 = self.input.LA(1) if (LA81_0 == ID) : alt81 = 1 if alt81 == 1: # sdl92.g:521:33: statename pass self._state.following.append(self.FOLLOW_statename_in_composite_state_graph5842) statename243 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename243.tree) self._state.following.append(self.FOLLOW_end_in_composite_state_graph5847) f = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(f.tree) # AST Rewrite # elements: statename, connection_points, body, e # token labels: # rule labels: e, body, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if e is not None: stream_e = RewriteRuleSubtreeStream(self._adaptor, "rule e", e.tree) else: stream_e = RewriteRuleSubtreeStream(self._adaptor, "token e", None) if body is not None: stream_body = RewriteRuleSubtreeStream(self._adaptor, "rule body", body.tree) else: stream_body = RewriteRuleSubtreeStream(self._adaptor, "token body", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 522:9: -> ^( COMPOSITE_STATE statename ( connection_points )* $body ( $e)? ) # sdl92.g:522:17: ^( COMPOSITE_STATE statename ( connection_points )* $body ( $e)? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(COMPOSITE_STATE, "COMPOSITE_STATE") , root_1) self._adaptor.addChild(root_1, stream_statename.nextTree()) # sdl92.g:522:45: ( connection_points )* while stream_connection_points.hasNext(): self._adaptor.addChild(root_1, stream_connection_points.nextTree()) stream_connection_points.reset(); self._adaptor.addChild(root_1, stream_body.nextTree()) # sdl92.g:522:71: ( $e)? if stream_e.hasNext(): self._adaptor.addChild(root_1, stream_e.nextTree()) stream_e.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "composite_state_graph" class state_aggregation_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state_aggregation" # sdl92.g:527:1: state_aggregation : STATE AGGREGATION statename e= end SUBSTRUCTURE ( connection_points )* (entities= entity_in_composite_state )* body= state_aggregation_body ENDSUBSTRUCTURE ( statename )? f= end -> ^( STATE_AGGREGATION statename ( connection_points )* ( $entities)* $body ( $e)? ) ; def state_aggregation(self, ): retval = self.state_aggregation_return() retval.start = self.input.LT(1) root_0 = None STATE244 = None AGGREGATION245 = None SUBSTRUCTURE247 = None ENDSUBSTRUCTURE249 = None e = None entities = None body = None f = None statename246 = None connection_points248 = None statename250 = None STATE244_tree = None AGGREGATION245_tree = None SUBSTRUCTURE247_tree = None ENDSUBSTRUCTURE249_tree = None stream_STATE = RewriteRuleTokenStream(self._adaptor, "token STATE") stream_AGGREGATION = RewriteRuleTokenStream(self._adaptor, "token AGGREGATION") stream_SUBSTRUCTURE = RewriteRuleTokenStream(self._adaptor, "token SUBSTRUCTURE") stream_ENDSUBSTRUCTURE = RewriteRuleTokenStream(self._adaptor, "token ENDSUBSTRUCTURE") stream_state_aggregation_body = RewriteRuleSubtreeStream(self._adaptor, "rule state_aggregation_body") stream_entity_in_composite_state = RewriteRuleSubtreeStream(self._adaptor, "rule entity_in_composite_state") stream_connection_points = RewriteRuleSubtreeStream(self._adaptor, "rule connection_points") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_statename = RewriteRuleSubtreeStream(self._adaptor, "rule statename") try: try: # sdl92.g:528:9: ( STATE AGGREGATION statename e= end SUBSTRUCTURE ( connection_points )* (entities= entity_in_composite_state )* body= state_aggregation_body ENDSUBSTRUCTURE ( statename )? f= end -> ^( STATE_AGGREGATION statename ( connection_points )* ( $entities)* $body ( $e)? ) ) # sdl92.g:528:17: STATE AGGREGATION statename e= end SUBSTRUCTURE ( connection_points )* (entities= entity_in_composite_state )* body= state_aggregation_body ENDSUBSTRUCTURE ( statename )? f= end pass STATE244 = self.match(self.input, STATE, self.FOLLOW_STATE_in_state_aggregation5911) if self._state.backtracking == 0: stream_STATE.add(STATE244) AGGREGATION245 = self.match(self.input, AGGREGATION, self.FOLLOW_AGGREGATION_in_state_aggregation5913) if self._state.backtracking == 0: stream_AGGREGATION.add(AGGREGATION245) self._state.following.append(self.FOLLOW_statename_in_state_aggregation5915) statename246 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename246.tree) self._state.following.append(self.FOLLOW_end_in_state_aggregation5919) e = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(e.tree) SUBSTRUCTURE247 = self.match(self.input, SUBSTRUCTURE, self.FOLLOW_SUBSTRUCTURE_in_state_aggregation5937) if self._state.backtracking == 0: stream_SUBSTRUCTURE.add(SUBSTRUCTURE247) # sdl92.g:530:17: ( connection_points )* while True: #loop82 alt82 = 2 LA82_0 = self.input.LA(1) if (LA82_0 in {IN, OUT}) : alt82 = 1 if alt82 == 1: # sdl92.g:530:17: connection_points pass self._state.following.append(self.FOLLOW_connection_points_in_state_aggregation5955) connection_points248 = self.connection_points() self._state.following.pop() if self._state.backtracking == 0: stream_connection_points.add(connection_points248.tree) else: break #loop82 # sdl92.g:531:25: (entities= entity_in_composite_state )* while True: #loop83 alt83 = 2 LA83_0 = self.input.LA(1) if (LA83_0 == 228) : LA83_2 = self.input.LA(2) if (LA83_2 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA83_4 = self.input.LA(3) if (LA83_4 == L_PAREN) : LA83_5 = self.input.LA(4) if (LA83_5 == DASH) : LA83_6 = self.input.LA(5) if (LA83_6 == INT) : LA83_7 = self.input.LA(6) if (LA83_7 == COMMA) : LA83_8 = self.input.LA(7) if (LA83_8 == DASH) : LA83_9 = self.input.LA(8) if (LA83_9 == INT) : LA83_10 = self.input.LA(9) if (LA83_10 == R_PAREN) : LA83_11 = self.input.LA(10) if (LA83_11 == COMMA) : LA83_12 = self.input.LA(11) if (LA83_12 == L_PAREN) : LA83_13 = self.input.LA(12) if (LA83_13 == INT) : LA83_14 = self.input.LA(13) if (LA83_14 == COMMA) : LA83_15 = self.input.LA(14) if (LA83_15 == INT) : LA83_16 = self.input.LA(15) if (LA83_16 == R_PAREN) : LA83_17 = self.input.LA(16) if (LA83_17 == 225) : LA83_18 = self.input.LA(17) if (LA83_18 == 228) : LA83_19 = self.input.LA(18) if (LA83_19 == KEEP) : LA83_20 = self.input.LA(19) if (LA83_20 == SPECIFIC) : LA83_21 = self.input.LA(20) if (LA83_21 == GEODE) : LA83_22 = self.input.LA(21) if (LA83_22 in {ASNFILENAME, PARAMNAMES}) : alt83 = 1 elif (LA83_19 in {ANSWER, COMMENT, CONNECT, DECISION, ENDTEXT, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt83 = 1 elif (LA83_18 in {DCL, FPAR, NEWTYPE, PROCEDURE, RETURNS, SIGNAL, SYNONYM, SYNTYPE, TIMER, USE, 226}) : alt83 = 1 elif (LA83_8 == INT) : LA83_10 = self.input.LA(8) if (LA83_10 == R_PAREN) : LA83_11 = self.input.LA(9) if (LA83_11 == COMMA) : LA83_12 = self.input.LA(10) if (LA83_12 == L_PAREN) : LA83_13 = self.input.LA(11) if (LA83_13 == INT) : LA83_14 = self.input.LA(12) if (LA83_14 == COMMA) : LA83_15 = self.input.LA(13) if (LA83_15 == INT) : LA83_16 = self.input.LA(14) if (LA83_16 == R_PAREN) : LA83_17 = self.input.LA(15) if (LA83_17 == 225) : LA83_18 = self.input.LA(16) if (LA83_18 == 228) : LA83_19 = self.input.LA(17) if (LA83_19 == KEEP) : LA83_20 = self.input.LA(18) if (LA83_20 == SPECIFIC) : LA83_21 = self.input.LA(19) if (LA83_21 == GEODE) : LA83_22 = self.input.LA(20) if (LA83_22 in {ASNFILENAME, PARAMNAMES}) : alt83 = 1 elif (LA83_19 in {ANSWER, COMMENT, CONNECT, DECISION, ENDTEXT, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt83 = 1 elif (LA83_18 in {DCL, FPAR, NEWTYPE, PROCEDURE, RETURNS, SIGNAL, SYNONYM, SYNTYPE, TIMER, USE, 226}) : alt83 = 1 elif (LA83_5 == INT) : LA83_7 = self.input.LA(5) if (LA83_7 == COMMA) : LA83_8 = self.input.LA(6) if (LA83_8 == DASH) : LA83_9 = self.input.LA(7) if (LA83_9 == INT) : LA83_10 = self.input.LA(8) if (LA83_10 == R_PAREN) : LA83_11 = self.input.LA(9) if (LA83_11 == COMMA) : LA83_12 = self.input.LA(10) if (LA83_12 == L_PAREN) : LA83_13 = self.input.LA(11) if (LA83_13 == INT) : LA83_14 = self.input.LA(12) if (LA83_14 == COMMA) : LA83_15 = self.input.LA(13) if (LA83_15 == INT) : LA83_16 = self.input.LA(14) if (LA83_16 == R_PAREN) : LA83_17 = self.input.LA(15) if (LA83_17 == 225) : LA83_18 = self.input.LA(16) if (LA83_18 == 228) : LA83_19 = self.input.LA(17) if (LA83_19 == KEEP) : LA83_20 = self.input.LA(18) if (LA83_20 == SPECIFIC) : LA83_21 = self.input.LA(19) if (LA83_21 == GEODE) : LA83_22 = self.input.LA(20) if (LA83_22 in {ASNFILENAME, PARAMNAMES}) : alt83 = 1 elif (LA83_19 in {ANSWER, COMMENT, CONNECT, DECISION, ENDTEXT, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt83 = 1 elif (LA83_18 in {DCL, FPAR, NEWTYPE, PROCEDURE, RETURNS, SIGNAL, SYNONYM, SYNTYPE, TIMER, USE, 226}) : alt83 = 1 elif (LA83_8 == INT) : LA83_10 = self.input.LA(7) if (LA83_10 == R_PAREN) : LA83_11 = self.input.LA(8) if (LA83_11 == COMMA) : LA83_12 = self.input.LA(9) if (LA83_12 == L_PAREN) : LA83_13 = self.input.LA(10) if (LA83_13 == INT) : LA83_14 = self.input.LA(11) if (LA83_14 == COMMA) : LA83_15 = self.input.LA(12) if (LA83_15 == INT) : LA83_16 = self.input.LA(13) if (LA83_16 == R_PAREN) : LA83_17 = self.input.LA(14) if (LA83_17 == 225) : LA83_18 = self.input.LA(15) if (LA83_18 == 228) : LA83_19 = self.input.LA(16) if (LA83_19 == KEEP) : LA83_20 = self.input.LA(17) if (LA83_20 == SPECIFIC) : LA83_21 = self.input.LA(18) if (LA83_21 == GEODE) : LA83_22 = self.input.LA(19) if (LA83_22 in {ASNFILENAME, PARAMNAMES}) : alt83 = 1 elif (LA83_19 in {ANSWER, COMMENT, CONNECT, DECISION, ENDTEXT, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt83 = 1 elif (LA83_18 in {DCL, FPAR, NEWTYPE, PROCEDURE, RETURNS, SIGNAL, SYNONYM, SYNTYPE, TIMER, USE, 226}) : alt83 = 1 elif (LA83_0 == PROCEDURE) : alt83 = 1 if alt83 == 1: # sdl92.g:531:25: entities= entity_in_composite_state pass self._state.following.append(self.FOLLOW_entity_in_composite_state_in_state_aggregation5976) entities = self.entity_in_composite_state() self._state.following.pop() if self._state.backtracking == 0: stream_entity_in_composite_state.add(entities.tree) else: break #loop83 self._state.following.append(self.FOLLOW_state_aggregation_body_in_state_aggregation5997) body = self.state_aggregation_body() self._state.following.pop() if self._state.backtracking == 0: stream_state_aggregation_body.add(body.tree) ENDSUBSTRUCTURE249 = self.match(self.input, ENDSUBSTRUCTURE, self.FOLLOW_ENDSUBSTRUCTURE_in_state_aggregation6015) if self._state.backtracking == 0: stream_ENDSUBSTRUCTURE.add(ENDSUBSTRUCTURE249) # sdl92.g:533:33: ( statename )? alt84 = 2 LA84_0 = self.input.LA(1) if (LA84_0 == ID) : alt84 = 1 if alt84 == 1: # sdl92.g:533:33: statename pass self._state.following.append(self.FOLLOW_statename_in_state_aggregation6017) statename250 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename250.tree) self._state.following.append(self.FOLLOW_end_in_state_aggregation6022) f = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(f.tree) # AST Rewrite # elements: statename, connection_points, entities, body, e # token labels: # rule labels: entities, e, body, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if entities is not None: stream_entities = RewriteRuleSubtreeStream(self._adaptor, "rule entities", entities.tree) else: stream_entities = RewriteRuleSubtreeStream(self._adaptor, "token entities", None) if e is not None: stream_e = RewriteRuleSubtreeStream(self._adaptor, "rule e", e.tree) else: stream_e = RewriteRuleSubtreeStream(self._adaptor, "token e", None) if body is not None: stream_body = RewriteRuleSubtreeStream(self._adaptor, "rule body", body.tree) else: stream_body = RewriteRuleSubtreeStream(self._adaptor, "token body", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 534:9: -> ^( STATE_AGGREGATION statename ( connection_points )* ( $entities)* $body ( $e)? ) # sdl92.g:534:17: ^( STATE_AGGREGATION statename ( connection_points )* ( $entities)* $body ( $e)? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(STATE_AGGREGATION, "STATE_AGGREGATION") , root_1) self._adaptor.addChild(root_1, stream_statename.nextTree()) # sdl92.g:534:47: ( connection_points )* while stream_connection_points.hasNext(): self._adaptor.addChild(root_1, stream_connection_points.nextTree()) stream_connection_points.reset(); # sdl92.g:535:38: ( $entities)* while stream_entities.hasNext(): self._adaptor.addChild(root_1, stream_entities.nextTree()) stream_entities.reset(); self._adaptor.addChild(root_1, stream_body.nextTree()) # sdl92.g:535:55: ( $e)? if stream_e.hasNext(): self._adaptor.addChild(root_1, stream_e.nextTree()) stream_e.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state_aggregation" class entity_in_composite_state_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "entity_in_composite_state" # sdl92.g:540:1: entity_in_composite_state : ( text_area | procedure ) ; def entity_in_composite_state(self, ): retval = self.entity_in_composite_state_return() retval.start = self.input.LT(1) root_0 = None text_area251 = None procedure252 = None try: try: # sdl92.g:541:9: ( ( text_area | procedure ) ) # sdl92.g:541:17: ( text_area | procedure ) pass root_0 = self._adaptor.nil() # sdl92.g:541:17: ( text_area | procedure ) alt85 = 2 LA85_0 = self.input.LA(1) if (LA85_0 == 228) : LA85_1 = self.input.LA(2) if (self.synpred109_sdl92()) : alt85 = 1 elif (True) : alt85 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 85, 1, self.input) raise nvae elif (LA85_0 == PROCEDURE) : alt85 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 85, 0, self.input) raise nvae if alt85 == 1: # sdl92.g:541:18: text_area pass self._state.following.append(self.FOLLOW_text_area_in_entity_in_composite_state6127) text_area251 = self.text_area() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, text_area251.tree) elif alt85 == 2: # sdl92.g:541:30: procedure pass self._state.following.append(self.FOLLOW_procedure_in_entity_in_composite_state6131) procedure252 = self.procedure() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, procedure252.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "entity_in_composite_state" class state_aggregation_body_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state_aggregation_body" # sdl92.g:546:1: state_aggregation_body : ( state_partitioning | state_partition_connection )* ( state )* ; def state_aggregation_body(self, ): retval = self.state_aggregation_body_return() retval.start = self.input.LT(1) root_0 = None state_partitioning253 = None state_partition_connection254 = None state255 = None try: try: # sdl92.g:547:9: ( ( state_partitioning | state_partition_connection )* ( state )* ) # sdl92.g:547:17: ( state_partitioning | state_partition_connection )* ( state )* pass root_0 = self._adaptor.nil() # sdl92.g:547:17: ( state_partitioning | state_partition_connection )* while True: #loop86 alt86 = 3 alt86 = self.dfa86.predict(self.input) if alt86 == 1: # sdl92.g:547:18: state_partitioning pass self._state.following.append(self.FOLLOW_state_partitioning_in_state_aggregation_body6166) state_partitioning253 = self.state_partitioning() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, state_partitioning253.tree) elif alt86 == 2: # sdl92.g:547:39: state_partition_connection pass self._state.following.append(self.FOLLOW_state_partition_connection_in_state_aggregation_body6170) state_partition_connection254 = self.state_partition_connection() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, state_partition_connection254.tree) else: break #loop86 # sdl92.g:548:17: ( state )* while True: #loop87 alt87 = 2 LA87_0 = self.input.LA(1) if (LA87_0 in {STATE, 228}) : alt87 = 1 if alt87 == 1: # sdl92.g:548:17: state pass self._state.following.append(self.FOLLOW_state_in_state_aggregation_body6190) state255 = self.state() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, state255.tree) else: break #loop87 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state_aggregation_body" class state_partitioning_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state_partitioning" # sdl92.g:553:1: state_partitioning : composite_state ; def state_partitioning(self, ): retval = self.state_partitioning_return() retval.start = self.input.LT(1) root_0 = None composite_state256 = None try: try: # sdl92.g:554:9: ( composite_state ) # sdl92.g:554:17: composite_state pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_composite_state_in_state_partitioning6224) composite_state256 = self.composite_state() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, composite_state256.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state_partitioning" class state_partition_connection_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state_partition_connection" # sdl92.g:559:1: state_partition_connection : CONNECT outer= entry_point AND inner= entry_point end -> ^( STATE_PARTITION_CONNECTION $outer $inner ( end )? ) ; def state_partition_connection(self, ): retval = self.state_partition_connection_return() retval.start = self.input.LT(1) root_0 = None CONNECT257 = None AND258 = None outer = None inner = None end259 = None CONNECT257_tree = None AND258_tree = None stream_AND = RewriteRuleTokenStream(self._adaptor, "token AND") stream_CONNECT = RewriteRuleTokenStream(self._adaptor, "token CONNECT") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_entry_point = RewriteRuleSubtreeStream(self._adaptor, "rule entry_point") try: try: # sdl92.g:560:9: ( CONNECT outer= entry_point AND inner= entry_point end -> ^( STATE_PARTITION_CONNECTION $outer $inner ( end )? ) ) # sdl92.g:560:17: CONNECT outer= entry_point AND inner= entry_point end pass CONNECT257 = self.match(self.input, CONNECT, self.FOLLOW_CONNECT_in_state_partition_connection6257) if self._state.backtracking == 0: stream_CONNECT.add(CONNECT257) self._state.following.append(self.FOLLOW_entry_point_in_state_partition_connection6261) outer = self.entry_point() self._state.following.pop() if self._state.backtracking == 0: stream_entry_point.add(outer.tree) AND258 = self.match(self.input, AND, self.FOLLOW_AND_in_state_partition_connection6263) if self._state.backtracking == 0: stream_AND.add(AND258) self._state.following.append(self.FOLLOW_entry_point_in_state_partition_connection6267) inner = self.entry_point() self._state.following.pop() if self._state.backtracking == 0: stream_entry_point.add(inner.tree) self._state.following.append(self.FOLLOW_end_in_state_partition_connection6269) end259 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end259.tree) # AST Rewrite # elements: outer, inner, end # token labels: # rule labels: outer, inner, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if outer is not None: stream_outer = RewriteRuleSubtreeStream(self._adaptor, "rule outer", outer.tree) else: stream_outer = RewriteRuleSubtreeStream(self._adaptor, "token outer", None) if inner is not None: stream_inner = RewriteRuleSubtreeStream(self._adaptor, "rule inner", inner.tree) else: stream_inner = RewriteRuleSubtreeStream(self._adaptor, "token inner", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 561:9: -> ^( STATE_PARTITION_CONNECTION $outer $inner ( end )? ) # sdl92.g:561:17: ^( STATE_PARTITION_CONNECTION $outer $inner ( end )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(STATE_PARTITION_CONNECTION, "STATE_PARTITION_CONNECTION") , root_1) self._adaptor.addChild(root_1, stream_outer.nextTree()) self._adaptor.addChild(root_1, stream_inner.nextTree()) # sdl92.g:561:60: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state_partition_connection" class entry_point_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "entry_point" # sdl92.g:566:1: entry_point : state_part_id= ID VIA point -> ^( ENTRY_POINT $state_part_id point ) ; def entry_point(self, ): retval = self.entry_point_return() retval.start = self.input.LT(1) root_0 = None state_part_id = None VIA260 = None point261 = None state_part_id_tree = None VIA260_tree = None stream_ID = RewriteRuleTokenStream(self._adaptor, "token ID") stream_VIA = RewriteRuleTokenStream(self._adaptor, "token VIA") stream_point = RewriteRuleSubtreeStream(self._adaptor, "rule point") try: try: # sdl92.g:567:9: (state_part_id= ID VIA point -> ^( ENTRY_POINT $state_part_id point ) ) # sdl92.g:567:17: state_part_id= ID VIA point pass state_part_id = self.match(self.input, ID, self.FOLLOW_ID_in_entry_point6332) if self._state.backtracking == 0: stream_ID.add(state_part_id) VIA260 = self.match(self.input, VIA, self.FOLLOW_VIA_in_entry_point6334) if self._state.backtracking == 0: stream_VIA.add(VIA260) self._state.following.append(self.FOLLOW_point_in_entry_point6336) point261 = self.point() self._state.following.pop() if self._state.backtracking == 0: stream_point.add(point261.tree) # AST Rewrite # elements: state_part_id, point # token labels: state_part_id # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 stream_state_part_id = RewriteRuleTokenStream(self._adaptor, "token state_part_id", state_part_id) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 568:9: -> ^( ENTRY_POINT $state_part_id point ) # sdl92.g:568:17: ^( ENTRY_POINT $state_part_id point ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(ENTRY_POINT, "ENTRY_POINT") , root_1) self._adaptor.addChild(root_1, stream_state_part_id.nextNode()) self._adaptor.addChild(root_1, stream_point.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "entry_point" class point_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "point" # sdl92.g:573:1: point : (state_point= ID | DEFAULT ) -> ^( POINT ( $state_point)? ( DEFAULT )? ) ; def point(self, ): retval = self.point_return() retval.start = self.input.LT(1) root_0 = None state_point = None DEFAULT262 = None state_point_tree = None DEFAULT262_tree = None stream_ID = RewriteRuleTokenStream(self._adaptor, "token ID") stream_DEFAULT = RewriteRuleTokenStream(self._adaptor, "token DEFAULT") try: try: # sdl92.g:574:9: ( (state_point= ID | DEFAULT ) -> ^( POINT ( $state_point)? ( DEFAULT )? ) ) # sdl92.g:574:17: (state_point= ID | DEFAULT ) pass # sdl92.g:574:17: (state_point= ID | DEFAULT ) alt88 = 2 LA88_0 = self.input.LA(1) if (LA88_0 == ID) : alt88 = 1 elif (LA88_0 == DEFAULT) : alt88 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 88, 0, self.input) raise nvae if alt88 == 1: # sdl92.g:574:18: state_point= ID pass state_point = self.match(self.input, ID, self.FOLLOW_ID_in_point6396) if self._state.backtracking == 0: stream_ID.add(state_point) elif alt88 == 2: # sdl92.g:574:35: DEFAULT pass DEFAULT262 = self.match(self.input, DEFAULT, self.FOLLOW_DEFAULT_in_point6400) if self._state.backtracking == 0: stream_DEFAULT.add(DEFAULT262) # AST Rewrite # elements: state_point, DEFAULT # token labels: state_point # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 stream_state_point = RewriteRuleTokenStream(self._adaptor, "token state_point", state_point) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 575:9: -> ^( POINT ( $state_point)? ( DEFAULT )? ) # sdl92.g:575:17: ^( POINT ( $state_point)? ( DEFAULT )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(POINT, "POINT") , root_1) # sdl92.g:575:26: ( $state_point)? if stream_state_point.hasNext(): self._adaptor.addChild(root_1, stream_state_point.nextNode()) stream_state_point.reset(); # sdl92.g:575:39: ( DEFAULT )? if stream_DEFAULT.hasNext(): self._adaptor.addChild(root_1, stream_DEFAULT.nextNode() ) stream_DEFAULT.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "point" class connection_points_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "connection_points" # sdl92.g:580:1: connection_points : ( IN state_entry_exit_points end -> ^( IN state_entry_exit_points ( end )? ) | OUT state_entry_exit_points end -> ^( OUT state_entry_exit_points ( end )? ) ); def connection_points(self, ): retval = self.connection_points_return() retval.start = self.input.LT(1) root_0 = None IN263 = None OUT266 = None state_entry_exit_points264 = None end265 = None state_entry_exit_points267 = None end268 = None IN263_tree = None OUT266_tree = None stream_IN = RewriteRuleTokenStream(self._adaptor, "token IN") stream_OUT = RewriteRuleTokenStream(self._adaptor, "token OUT") stream_state_entry_exit_points = RewriteRuleSubtreeStream(self._adaptor, "rule state_entry_exit_points") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:581:9: ( IN state_entry_exit_points end -> ^( IN state_entry_exit_points ( end )? ) | OUT state_entry_exit_points end -> ^( OUT state_entry_exit_points ( end )? ) ) alt89 = 2 LA89_0 = self.input.LA(1) if (LA89_0 == IN) : alt89 = 1 elif (LA89_0 == OUT) : alt89 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 89, 0, self.input) raise nvae if alt89 == 1: # sdl92.g:581:17: IN state_entry_exit_points end pass IN263 = self.match(self.input, IN, self.FOLLOW_IN_in_connection_points6460) if self._state.backtracking == 0: stream_IN.add(IN263) self._state.following.append(self.FOLLOW_state_entry_exit_points_in_connection_points6462) state_entry_exit_points264 = self.state_entry_exit_points() self._state.following.pop() if self._state.backtracking == 0: stream_state_entry_exit_points.add(state_entry_exit_points264.tree) self._state.following.append(self.FOLLOW_end_in_connection_points6464) end265 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end265.tree) # AST Rewrite # elements: IN, state_entry_exit_points, end # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 582:9: -> ^( IN state_entry_exit_points ( end )? ) # sdl92.g:582:17: ^( IN state_entry_exit_points ( end )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_IN.nextNode() , root_1) self._adaptor.addChild(root_1, stream_state_entry_exit_points.nextTree()) # sdl92.g:582:46: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 elif alt89 == 2: # sdl92.g:583:19: OUT state_entry_exit_points end pass OUT266 = self.match(self.input, OUT, self.FOLLOW_OUT_in_connection_points6508) if self._state.backtracking == 0: stream_OUT.add(OUT266) self._state.following.append(self.FOLLOW_state_entry_exit_points_in_connection_points6510) state_entry_exit_points267 = self.state_entry_exit_points() self._state.following.pop() if self._state.backtracking == 0: stream_state_entry_exit_points.add(state_entry_exit_points267.tree) self._state.following.append(self.FOLLOW_end_in_connection_points6512) end268 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end268.tree) # AST Rewrite # elements: OUT, state_entry_exit_points, end # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 584:9: -> ^( OUT state_entry_exit_points ( end )? ) # sdl92.g:584:17: ^( OUT state_entry_exit_points ( end )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_OUT.nextNode() , root_1) self._adaptor.addChild(root_1, stream_state_entry_exit_points.nextTree()) # sdl92.g:584:47: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "connection_points" class state_entry_exit_points_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state_entry_exit_points" # sdl92.g:589:1: state_entry_exit_points : '(' statename ( ',' statename )* ')' -> ( statename )+ ; def state_entry_exit_points(self, ): retval = self.state_entry_exit_points_return() retval.start = self.input.LT(1) root_0 = None char_literal269 = None char_literal271 = None char_literal273 = None statename270 = None statename272 = None char_literal269_tree = None char_literal271_tree = None char_literal273_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_L_PAREN = RewriteRuleTokenStream(self._adaptor, "token L_PAREN") stream_R_PAREN = RewriteRuleTokenStream(self._adaptor, "token R_PAREN") stream_statename = RewriteRuleSubtreeStream(self._adaptor, "rule statename") try: try: # sdl92.g:590:9: ( '(' statename ( ',' statename )* ')' -> ( statename )+ ) # sdl92.g:590:17: '(' statename ( ',' statename )* ')' pass char_literal269 = self.match(self.input, L_PAREN, self.FOLLOW_L_PAREN_in_state_entry_exit_points6569) if self._state.backtracking == 0: stream_L_PAREN.add(char_literal269) self._state.following.append(self.FOLLOW_statename_in_state_entry_exit_points6571) statename270 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename270.tree) # sdl92.g:590:31: ( ',' statename )* while True: #loop90 alt90 = 2 LA90_0 = self.input.LA(1) if (LA90_0 == COMMA) : alt90 = 1 if alt90 == 1: # sdl92.g:590:32: ',' statename pass char_literal271 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_state_entry_exit_points6574) if self._state.backtracking == 0: stream_COMMA.add(char_literal271) self._state.following.append(self.FOLLOW_statename_in_state_entry_exit_points6576) statename272 = self.statename() self._state.following.pop() if self._state.backtracking == 0: stream_statename.add(statename272.tree) else: break #loop90 char_literal273 = self.match(self.input, R_PAREN, self.FOLLOW_R_PAREN_in_state_entry_exit_points6580) if self._state.backtracking == 0: stream_R_PAREN.add(char_literal273) # AST Rewrite # elements: statename # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 591:9: -> ( statename )+ # sdl92.g:591:17: ( statename )+ if not (stream_statename.hasNext()): raise RewriteEarlyExitException() while stream_statename.hasNext(): self._adaptor.addChild(root_0, stream_statename.nextTree()) stream_statename.reset() retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state_entry_exit_points" class composite_state_body_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "composite_state_body" # sdl92.g:598:1: composite_state_body : ( text_area | procedure | ( composite_state_preamble )=> composite_state )* ( start )* ( state | floating_label )* ( EOF )? ; def composite_state_body(self, ): retval = self.composite_state_body_return() retval.start = self.input.LT(1) root_0 = None EOF280 = None text_area274 = None procedure275 = None composite_state276 = None start277 = None state278 = None floating_label279 = None EOF280_tree = None try: try: # sdl92.g:599:9: ( ( text_area | procedure | ( composite_state_preamble )=> composite_state )* ( start )* ( state | floating_label )* ( EOF )? ) # sdl92.g:599:12: ( text_area | procedure | ( composite_state_preamble )=> composite_state )* ( start )* ( state | floating_label )* ( EOF )? pass root_0 = self._adaptor.nil() # sdl92.g:599:12: ( text_area | procedure | ( composite_state_preamble )=> composite_state )* while True: #loop91 alt91 = 4 LA91 = self.input.LA(1) if LA91 in {228}: LA91_1 = self.input.LA(2) if (self.synpred116_sdl92()) : alt91 = 1 elif (self.synpred117_sdl92()) : alt91 = 2 elif LA91 in {STATE}: LA91_3 = self.input.LA(2) if (self.synpred118_sdl92()) : alt91 = 3 elif LA91 in {PROCEDURE}: alt91 = 2 if alt91 == 1: # sdl92.g:599:13: text_area pass self._state.following.append(self.FOLLOW_text_area_in_composite_state_body6629) text_area274 = self.text_area() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, text_area274.tree) elif alt91 == 2: # sdl92.g:600:15: procedure pass self._state.following.append(self.FOLLOW_procedure_in_composite_state_body6645) procedure275 = self.procedure() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, procedure275.tree) elif alt91 == 3: # sdl92.g:601:15: ( composite_state_preamble )=> composite_state pass self._state.following.append(self.FOLLOW_composite_state_in_composite_state_body6666) composite_state276 = self.composite_state() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, composite_state276.tree) else: break #loop91 # sdl92.g:602:12: ( start )* while True: #loop92 alt92 = 2 LA92_0 = self.input.LA(1) if (LA92_0 == 228) : LA92_1 = self.input.LA(2) if (LA92_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA92_4 = self.input.LA(3) if (LA92_4 == L_PAREN) : LA92_6 = self.input.LA(4) if (LA92_6 == DASH) : LA92_8 = self.input.LA(5) if (LA92_8 == INT) : LA92_9 = self.input.LA(6) if (LA92_9 == COMMA) : LA92_11 = self.input.LA(7) if (LA92_11 == DASH) : LA92_13 = self.input.LA(8) if (LA92_13 == INT) : LA92_14 = self.input.LA(9) if (LA92_14 == R_PAREN) : LA92_16 = self.input.LA(10) if (LA92_16 == COMMA) : LA92_18 = self.input.LA(11) if (LA92_18 == L_PAREN) : LA92_19 = self.input.LA(12) if (LA92_19 == INT) : LA92_20 = self.input.LA(13) if (LA92_20 == COMMA) : LA92_21 = self.input.LA(14) if (LA92_21 == INT) : LA92_22 = self.input.LA(15) if (LA92_22 == R_PAREN) : LA92_23 = self.input.LA(16) if (LA92_23 == 225) : LA92_24 = self.input.LA(17) if (LA92_24 == 228) : LA92_25 = self.input.LA(18) if (LA92_25 == KEEP) : LA92_5 = self.input.LA(19) if (LA92_5 == SPECIFIC) : LA92_7 = self.input.LA(20) if (LA92_7 == GEODE) : LA92_10 = self.input.LA(21) if (LA92_10 == HYPERLINK) : LA92_12 = self.input.LA(22) if (LA92_12 == STRING) : LA92_15 = self.input.LA(23) if (LA92_15 == 225) : LA92_17 = self.input.LA(24) if (LA92_17 == START) : alt92 = 1 elif (LA92_24 == START) : alt92 = 1 elif (LA92_11 == INT) : LA92_14 = self.input.LA(8) if (LA92_14 == R_PAREN) : LA92_16 = self.input.LA(9) if (LA92_16 == COMMA) : LA92_18 = self.input.LA(10) if (LA92_18 == L_PAREN) : LA92_19 = self.input.LA(11) if (LA92_19 == INT) : LA92_20 = self.input.LA(12) if (LA92_20 == COMMA) : LA92_21 = self.input.LA(13) if (LA92_21 == INT) : LA92_22 = self.input.LA(14) if (LA92_22 == R_PAREN) : LA92_23 = self.input.LA(15) if (LA92_23 == 225) : LA92_24 = self.input.LA(16) if (LA92_24 == 228) : LA92_25 = self.input.LA(17) if (LA92_25 == KEEP) : LA92_5 = self.input.LA(18) if (LA92_5 == SPECIFIC) : LA92_7 = self.input.LA(19) if (LA92_7 == GEODE) : LA92_10 = self.input.LA(20) if (LA92_10 == HYPERLINK) : LA92_12 = self.input.LA(21) if (LA92_12 == STRING) : LA92_15 = self.input.LA(22) if (LA92_15 == 225) : LA92_17 = self.input.LA(23) if (LA92_17 == START) : alt92 = 1 elif (LA92_24 == START) : alt92 = 1 elif (LA92_6 == INT) : LA92_9 = self.input.LA(5) if (LA92_9 == COMMA) : LA92_11 = self.input.LA(6) if (LA92_11 == DASH) : LA92_13 = self.input.LA(7) if (LA92_13 == INT) : LA92_14 = self.input.LA(8) if (LA92_14 == R_PAREN) : LA92_16 = self.input.LA(9) if (LA92_16 == COMMA) : LA92_18 = self.input.LA(10) if (LA92_18 == L_PAREN) : LA92_19 = self.input.LA(11) if (LA92_19 == INT) : LA92_20 = self.input.LA(12) if (LA92_20 == COMMA) : LA92_21 = self.input.LA(13) if (LA92_21 == INT) : LA92_22 = self.input.LA(14) if (LA92_22 == R_PAREN) : LA92_23 = self.input.LA(15) if (LA92_23 == 225) : LA92_24 = self.input.LA(16) if (LA92_24 == 228) : LA92_25 = self.input.LA(17) if (LA92_25 == KEEP) : LA92_5 = self.input.LA(18) if (LA92_5 == SPECIFIC) : LA92_7 = self.input.LA(19) if (LA92_7 == GEODE) : LA92_10 = self.input.LA(20) if (LA92_10 == HYPERLINK) : LA92_12 = self.input.LA(21) if (LA92_12 == STRING) : LA92_15 = self.input.LA(22) if (LA92_15 == 225) : LA92_17 = self.input.LA(23) if (LA92_17 == START) : alt92 = 1 elif (LA92_24 == START) : alt92 = 1 elif (LA92_11 == INT) : LA92_14 = self.input.LA(7) if (LA92_14 == R_PAREN) : LA92_16 = self.input.LA(8) if (LA92_16 == COMMA) : LA92_18 = self.input.LA(9) if (LA92_18 == L_PAREN) : LA92_19 = self.input.LA(10) if (LA92_19 == INT) : LA92_20 = self.input.LA(11) if (LA92_20 == COMMA) : LA92_21 = self.input.LA(12) if (LA92_21 == INT) : LA92_22 = self.input.LA(13) if (LA92_22 == R_PAREN) : LA92_23 = self.input.LA(14) if (LA92_23 == 225) : LA92_24 = self.input.LA(15) if (LA92_24 == 228) : LA92_25 = self.input.LA(16) if (LA92_25 == KEEP) : LA92_5 = self.input.LA(17) if (LA92_5 == SPECIFIC) : LA92_7 = self.input.LA(18) if (LA92_7 == GEODE) : LA92_10 = self.input.LA(19) if (LA92_10 == HYPERLINK) : LA92_12 = self.input.LA(20) if (LA92_12 == STRING) : LA92_15 = self.input.LA(21) if (LA92_15 == 225) : LA92_17 = self.input.LA(22) if (LA92_17 == START) : alt92 = 1 elif (LA92_24 == START) : alt92 = 1 elif (LA92_1 == KEEP) : LA92_5 = self.input.LA(3) if (LA92_5 == SPECIFIC) : LA92_7 = self.input.LA(4) if (LA92_7 == GEODE) : LA92_10 = self.input.LA(5) if (LA92_10 == HYPERLINK) : LA92_12 = self.input.LA(6) if (LA92_12 == STRING) : LA92_15 = self.input.LA(7) if (LA92_15 == 225) : LA92_17 = self.input.LA(8) if (LA92_17 == START) : alt92 = 1 elif (LA92_0 == START) : alt92 = 1 if alt92 == 1: # sdl92.g:602:12: start pass self._state.following.append(self.FOLLOW_start_in_composite_state_body6681) start277 = self.start() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, start277.tree) else: break #loop92 # sdl92.g:602:19: ( state | floating_label )* while True: #loop93 alt93 = 3 LA93 = self.input.LA(1) if LA93 in {228}: LA93_2 = self.input.LA(2) if (LA93_2 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA93_5 = self.input.LA(3) if (LA93_5 == L_PAREN) : LA93_7 = self.input.LA(4) if (LA93_7 == DASH) : LA93_9 = self.input.LA(5) if (LA93_9 == INT) : LA93_10 = self.input.LA(6) if (LA93_10 == COMMA) : LA93_12 = self.input.LA(7) if (LA93_12 == DASH) : LA93_14 = self.input.LA(8) if (LA93_14 == INT) : LA93_15 = self.input.LA(9) if (LA93_15 == R_PAREN) : LA93_17 = self.input.LA(10) if (LA93_17 == COMMA) : LA93_19 = self.input.LA(11) if (LA93_19 == L_PAREN) : LA93_20 = self.input.LA(12) if (LA93_20 == INT) : LA93_21 = self.input.LA(13) if (LA93_21 == COMMA) : LA93_22 = self.input.LA(14) if (LA93_22 == INT) : LA93_23 = self.input.LA(15) if (LA93_23 == R_PAREN) : LA93_24 = self.input.LA(16) if (LA93_24 == 225) : LA93 = self.input.LA(17) if LA93 in {228}: LA93_26 = self.input.LA(18) if (LA93_26 == KEEP) : LA93_6 = self.input.LA(19) if (LA93_6 == SPECIFIC) : LA93_8 = self.input.LA(20) if (LA93_8 == GEODE) : LA93_11 = self.input.LA(21) if (LA93_11 == HYPERLINK) : LA93_13 = self.input.LA(22) if (LA93_13 == STRING) : LA93_16 = self.input.LA(23) if (LA93_16 == 225) : LA93_18 = self.input.LA(24) if (LA93_18 == STATE) : alt93 = 1 elif (LA93_18 == CONNECTION) : alt93 = 2 elif LA93 in {STATE}: alt93 = 1 elif LA93 in {CONNECTION}: alt93 = 2 elif (LA93_12 == INT) : LA93_15 = self.input.LA(8) if (LA93_15 == R_PAREN) : LA93_17 = self.input.LA(9) if (LA93_17 == COMMA) : LA93_19 = self.input.LA(10) if (LA93_19 == L_PAREN) : LA93_20 = self.input.LA(11) if (LA93_20 == INT) : LA93_21 = self.input.LA(12) if (LA93_21 == COMMA) : LA93_22 = self.input.LA(13) if (LA93_22 == INT) : LA93_23 = self.input.LA(14) if (LA93_23 == R_PAREN) : LA93_24 = self.input.LA(15) if (LA93_24 == 225) : LA93 = self.input.LA(16) if LA93 in {228}: LA93_26 = self.input.LA(17) if (LA93_26 == KEEP) : LA93_6 = self.input.LA(18) if (LA93_6 == SPECIFIC) : LA93_8 = self.input.LA(19) if (LA93_8 == GEODE) : LA93_11 = self.input.LA(20) if (LA93_11 == HYPERLINK) : LA93_13 = self.input.LA(21) if (LA93_13 == STRING) : LA93_16 = self.input.LA(22) if (LA93_16 == 225) : LA93_18 = self.input.LA(23) if (LA93_18 == STATE) : alt93 = 1 elif (LA93_18 == CONNECTION) : alt93 = 2 elif LA93 in {STATE}: alt93 = 1 elif LA93 in {CONNECTION}: alt93 = 2 elif (LA93_7 == INT) : LA93_10 = self.input.LA(5) if (LA93_10 == COMMA) : LA93_12 = self.input.LA(6) if (LA93_12 == DASH) : LA93_14 = self.input.LA(7) if (LA93_14 == INT) : LA93_15 = self.input.LA(8) if (LA93_15 == R_PAREN) : LA93_17 = self.input.LA(9) if (LA93_17 == COMMA) : LA93_19 = self.input.LA(10) if (LA93_19 == L_PAREN) : LA93_20 = self.input.LA(11) if (LA93_20 == INT) : LA93_21 = self.input.LA(12) if (LA93_21 == COMMA) : LA93_22 = self.input.LA(13) if (LA93_22 == INT) : LA93_23 = self.input.LA(14) if (LA93_23 == R_PAREN) : LA93_24 = self.input.LA(15) if (LA93_24 == 225) : LA93 = self.input.LA(16) if LA93 in {228}: LA93_26 = self.input.LA(17) if (LA93_26 == KEEP) : LA93_6 = self.input.LA(18) if (LA93_6 == SPECIFIC) : LA93_8 = self.input.LA(19) if (LA93_8 == GEODE) : LA93_11 = self.input.LA(20) if (LA93_11 == HYPERLINK) : LA93_13 = self.input.LA(21) if (LA93_13 == STRING) : LA93_16 = self.input.LA(22) if (LA93_16 == 225) : LA93_18 = self.input.LA(23) if (LA93_18 == STATE) : alt93 = 1 elif (LA93_18 == CONNECTION) : alt93 = 2 elif LA93 in {STATE}: alt93 = 1 elif LA93 in {CONNECTION}: alt93 = 2 elif (LA93_12 == INT) : LA93_15 = self.input.LA(7) if (LA93_15 == R_PAREN) : LA93_17 = self.input.LA(8) if (LA93_17 == COMMA) : LA93_19 = self.input.LA(9) if (LA93_19 == L_PAREN) : LA93_20 = self.input.LA(10) if (LA93_20 == INT) : LA93_21 = self.input.LA(11) if (LA93_21 == COMMA) : LA93_22 = self.input.LA(12) if (LA93_22 == INT) : LA93_23 = self.input.LA(13) if (LA93_23 == R_PAREN) : LA93_24 = self.input.LA(14) if (LA93_24 == 225) : LA93 = self.input.LA(15) if LA93 in {228}: LA93_26 = self.input.LA(16) if (LA93_26 == KEEP) : LA93_6 = self.input.LA(17) if (LA93_6 == SPECIFIC) : LA93_8 = self.input.LA(18) if (LA93_8 == GEODE) : LA93_11 = self.input.LA(19) if (LA93_11 == HYPERLINK) : LA93_13 = self.input.LA(20) if (LA93_13 == STRING) : LA93_16 = self.input.LA(21) if (LA93_16 == 225) : LA93_18 = self.input.LA(22) if (LA93_18 == STATE) : alt93 = 1 elif (LA93_18 == CONNECTION) : alt93 = 2 elif LA93 in {STATE}: alt93 = 1 elif LA93 in {CONNECTION}: alt93 = 2 elif (LA93_2 == KEEP) : LA93_6 = self.input.LA(3) if (LA93_6 == SPECIFIC) : LA93_8 = self.input.LA(4) if (LA93_8 == GEODE) : LA93_11 = self.input.LA(5) if (LA93_11 == HYPERLINK) : LA93_13 = self.input.LA(6) if (LA93_13 == STRING) : LA93_16 = self.input.LA(7) if (LA93_16 == 225) : LA93_18 = self.input.LA(8) if (LA93_18 == STATE) : alt93 = 1 elif (LA93_18 == CONNECTION) : alt93 = 2 elif LA93 in {STATE}: alt93 = 1 elif LA93 in {CONNECTION}: alt93 = 2 if alt93 == 1: # sdl92.g:602:20: state pass self._state.following.append(self.FOLLOW_state_in_composite_state_body6685) state278 = self.state() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, state278.tree) elif alt93 == 2: # sdl92.g:602:28: floating_label pass self._state.following.append(self.FOLLOW_floating_label_in_composite_state_body6689) floating_label279 = self.floating_label() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, floating_label279.tree) else: break #loop93 # sdl92.g:603:12: ( EOF )? alt94 = 2 LA94_0 = self.input.LA(1) if (LA94_0 == EOF) : alt94 = 1 if alt94 == 1: # sdl92.g:603:12: EOF pass EOF280 = self.match(self.input, EOF, self.FOLLOW_EOF_in_composite_state_body6704) if self._state.backtracking == 0: EOF280_tree = self._adaptor.createWithPayload(EOF280) self._adaptor.addChild(root_0, EOF280_tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "composite_state_body" class state_part_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "state_part" # sdl92.g:607:1: state_part : ( input_part | save_part | spontaneous_transition | continuous_signal | connect_part ); def state_part(self, ): retval = self.state_part_return() retval.start = self.input.LT(1) root_0 = None input_part281 = None save_part282 = None spontaneous_transition283 = None continuous_signal284 = None connect_part285 = None try: try: # sdl92.g:608:9: ( input_part | save_part | spontaneous_transition | continuous_signal | connect_part ) alt95 = 5 LA95 = self.input.LA(1) if LA95 in {228}: LA95_1 = self.input.LA(2) if (LA95_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA95_6 = self.input.LA(3) if (LA95_6 == L_PAREN) : LA95_10 = self.input.LA(4) if (LA95_10 == DASH) : LA95_12 = self.input.LA(5) if (LA95_12 == INT) : LA95_13 = self.input.LA(6) if (LA95_13 == COMMA) : LA95_15 = self.input.LA(7) if (LA95_15 == DASH) : LA95_17 = self.input.LA(8) if (LA95_17 == INT) : LA95_18 = self.input.LA(9) if (LA95_18 == R_PAREN) : LA95_20 = self.input.LA(10) if (LA95_20 == COMMA) : LA95_22 = self.input.LA(11) if (LA95_22 == L_PAREN) : LA95_23 = self.input.LA(12) if (LA95_23 == INT) : LA95_24 = self.input.LA(13) if (LA95_24 == COMMA) : LA95_25 = self.input.LA(14) if (LA95_25 == INT) : LA95_26 = self.input.LA(15) if (LA95_26 == R_PAREN) : LA95_27 = self.input.LA(16) if (LA95_27 == 225) : LA95 = self.input.LA(17) if LA95 in {228}: LA95_29 = self.input.LA(18) if (LA95_29 == KEEP) : LA95_7 = self.input.LA(19) if (LA95_7 == SPECIFIC) : LA95_11 = self.input.LA(20) if (LA95_11 == GEODE) : LA95_14 = self.input.LA(21) if (LA95_14 == HYPERLINK) : LA95_16 = self.input.LA(22) if (LA95_16 == STRING) : LA95_19 = self.input.LA(23) if (LA95_19 == 225) : LA95 = self.input.LA(24) if LA95 in {INPUT}: LA95_2 = self.input.LA(25) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 21, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 14, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 11, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 29, self.input) raise nvae elif LA95 in {INPUT}: LA95_2 = self.input.LA(18) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 27, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 18, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 17, self.input) raise nvae elif (LA95_15 == INT) : LA95_18 = self.input.LA(8) if (LA95_18 == R_PAREN) : LA95_20 = self.input.LA(9) if (LA95_20 == COMMA) : LA95_22 = self.input.LA(10) if (LA95_22 == L_PAREN) : LA95_23 = self.input.LA(11) if (LA95_23 == INT) : LA95_24 = self.input.LA(12) if (LA95_24 == COMMA) : LA95_25 = self.input.LA(13) if (LA95_25 == INT) : LA95_26 = self.input.LA(14) if (LA95_26 == R_PAREN) : LA95_27 = self.input.LA(15) if (LA95_27 == 225) : LA95 = self.input.LA(16) if LA95 in {228}: LA95_29 = self.input.LA(17) if (LA95_29 == KEEP) : LA95_7 = self.input.LA(18) if (LA95_7 == SPECIFIC) : LA95_11 = self.input.LA(19) if (LA95_11 == GEODE) : LA95_14 = self.input.LA(20) if (LA95_14 == HYPERLINK) : LA95_16 = self.input.LA(21) if (LA95_16 == STRING) : LA95_19 = self.input.LA(22) if (LA95_19 == 225) : LA95 = self.input.LA(23) if LA95 in {INPUT}: LA95_2 = self.input.LA(24) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 21, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 14, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 11, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 29, self.input) raise nvae elif LA95 in {INPUT}: LA95_2 = self.input.LA(17) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 27, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 18, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 15, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 12, self.input) raise nvae elif (LA95_10 == INT) : LA95_13 = self.input.LA(5) if (LA95_13 == COMMA) : LA95_15 = self.input.LA(6) if (LA95_15 == DASH) : LA95_17 = self.input.LA(7) if (LA95_17 == INT) : LA95_18 = self.input.LA(8) if (LA95_18 == R_PAREN) : LA95_20 = self.input.LA(9) if (LA95_20 == COMMA) : LA95_22 = self.input.LA(10) if (LA95_22 == L_PAREN) : LA95_23 = self.input.LA(11) if (LA95_23 == INT) : LA95_24 = self.input.LA(12) if (LA95_24 == COMMA) : LA95_25 = self.input.LA(13) if (LA95_25 == INT) : LA95_26 = self.input.LA(14) if (LA95_26 == R_PAREN) : LA95_27 = self.input.LA(15) if (LA95_27 == 225) : LA95 = self.input.LA(16) if LA95 in {228}: LA95_29 = self.input.LA(17) if (LA95_29 == KEEP) : LA95_7 = self.input.LA(18) if (LA95_7 == SPECIFIC) : LA95_11 = self.input.LA(19) if (LA95_11 == GEODE) : LA95_14 = self.input.LA(20) if (LA95_14 == HYPERLINK) : LA95_16 = self.input.LA(21) if (LA95_16 == STRING) : LA95_19 = self.input.LA(22) if (LA95_19 == 225) : LA95 = self.input.LA(23) if LA95 in {INPUT}: LA95_2 = self.input.LA(24) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 21, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 14, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 11, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 29, self.input) raise nvae elif LA95 in {INPUT}: LA95_2 = self.input.LA(17) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 27, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 18, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 17, self.input) raise nvae elif (LA95_15 == INT) : LA95_18 = self.input.LA(7) if (LA95_18 == R_PAREN) : LA95_20 = self.input.LA(8) if (LA95_20 == COMMA) : LA95_22 = self.input.LA(9) if (LA95_22 == L_PAREN) : LA95_23 = self.input.LA(10) if (LA95_23 == INT) : LA95_24 = self.input.LA(11) if (LA95_24 == COMMA) : LA95_25 = self.input.LA(12) if (LA95_25 == INT) : LA95_26 = self.input.LA(13) if (LA95_26 == R_PAREN) : LA95_27 = self.input.LA(14) if (LA95_27 == 225) : LA95 = self.input.LA(15) if LA95 in {228}: LA95_29 = self.input.LA(16) if (LA95_29 == KEEP) : LA95_7 = self.input.LA(17) if (LA95_7 == SPECIFIC) : LA95_11 = self.input.LA(18) if (LA95_11 == GEODE) : LA95_14 = self.input.LA(19) if (LA95_14 == HYPERLINK) : LA95_16 = self.input.LA(20) if (LA95_16 == STRING) : LA95_19 = self.input.LA(21) if (LA95_19 == 225) : LA95 = self.input.LA(22) if LA95 in {INPUT}: LA95_2 = self.input.LA(23) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 21, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 14, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 11, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 29, self.input) raise nvae elif LA95 in {INPUT}: LA95_2 = self.input.LA(16) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 27, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 18, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 15, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 10, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 6, self.input) raise nvae elif (LA95_1 == KEEP) : LA95_7 = self.input.LA(3) if (LA95_7 == SPECIFIC) : LA95_11 = self.input.LA(4) if (LA95_11 == GEODE) : LA95_14 = self.input.LA(5) if (LA95_14 == HYPERLINK) : LA95_16 = self.input.LA(6) if (LA95_16 == STRING) : LA95_19 = self.input.LA(7) if (LA95_19 == 225) : LA95 = self.input.LA(8) if LA95 in {INPUT}: LA95_2 = self.input.LA(9) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 21, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 14, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 11, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 1, self.input) raise nvae elif LA95 in {INPUT}: LA95_2 = self.input.LA(2) if (LA95_2 == NONE) : alt95 = 3 elif (LA95_2 in {ASTERISK, ID}) : alt95 = 1 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 2, self.input) raise nvae elif LA95 in {SAVE}: alt95 = 2 elif LA95 in {PROVIDED}: alt95 = 4 elif LA95 in {CONNECT}: alt95 = 5 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 95, 0, self.input) raise nvae if alt95 == 1: # sdl92.g:608:17: input_part pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_input_part_in_state_part6737) input_part281 = self.input_part() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, input_part281.tree) elif alt95 == 2: # sdl92.g:610:19: save_part pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_save_part_in_state_part6774) save_part282 = self.save_part() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, save_part282.tree) elif alt95 == 3: # sdl92.g:611:19: spontaneous_transition pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_spontaneous_transition_in_state_part6809) spontaneous_transition283 = self.spontaneous_transition() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, spontaneous_transition283.tree) elif alt95 == 4: # sdl92.g:612:19: continuous_signal pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_continuous_signal_in_state_part6829) continuous_signal284 = self.continuous_signal() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, continuous_signal284.tree) elif alt95 == 5: # sdl92.g:613:19: connect_part pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_connect_part_in_state_part6849) connect_part285 = self.connect_part() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, connect_part285.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "state_part" class connect_part_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "connect_part" # sdl92.g:618:1: connect_part : ( cif )? ( hyperlink )? CONNECT ( connect_list )? end ( transition )? -> ^( CONNECT ( cif )? ( hyperlink )? ( connect_list )? ( end )? ( transition )? ) ; def connect_part(self, ): retval = self.connect_part_return() retval.start = self.input.LT(1) root_0 = None CONNECT288 = None cif286 = None hyperlink287 = None connect_list289 = None end290 = None transition291 = None CONNECT288_tree = None stream_CONNECT = RewriteRuleTokenStream(self._adaptor, "token CONNECT") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_connect_list = RewriteRuleSubtreeStream(self._adaptor, "rule connect_list") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_transition = RewriteRuleSubtreeStream(self._adaptor, "rule transition") try: try: # sdl92.g:619:9: ( ( cif )? ( hyperlink )? CONNECT ( connect_list )? end ( transition )? -> ^( CONNECT ( cif )? ( hyperlink )? ( connect_list )? ( end )? ( transition )? ) ) # sdl92.g:619:17: ( cif )? ( hyperlink )? CONNECT ( connect_list )? end ( transition )? pass # sdl92.g:619:17: ( cif )? alt96 = 2 LA96_0 = self.input.LA(1) if (LA96_0 == 228) : LA96_1 = self.input.LA(2) if (LA96_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt96 = 1 if alt96 == 1: # sdl92.g:619:17: cif pass self._state.following.append(self.FOLLOW_cif_in_connect_part6882) cif286 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif286.tree) # sdl92.g:620:17: ( hyperlink )? alt97 = 2 LA97_0 = self.input.LA(1) if (LA97_0 == 228) : alt97 = 1 if alt97 == 1: # sdl92.g:620:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_connect_part6901) hyperlink287 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink287.tree) CONNECT288 = self.match(self.input, CONNECT, self.FOLLOW_CONNECT_in_connect_part6920) if self._state.backtracking == 0: stream_CONNECT.add(CONNECT288) # sdl92.g:621:25: ( connect_list )? alt98 = 2 LA98_0 = self.input.LA(1) if (LA98_0 in {ASTERISK, ID}) : alt98 = 1 if alt98 == 1: # sdl92.g:621:25: connect_list pass self._state.following.append(self.FOLLOW_connect_list_in_connect_part6922) connect_list289 = self.connect_list() self._state.following.pop() if self._state.backtracking == 0: stream_connect_list.add(connect_list289.tree) self._state.following.append(self.FOLLOW_end_in_connect_part6925) end290 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end290.tree) # sdl92.g:622:17: ( transition )? alt99 = 2 LA99_0 = self.input.LA(1) if (LA99_0 == 228) : LA99_1 = self.input.LA(2) if (LA99_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA99_4 = self.input.LA(3) if (LA99_4 == L_PAREN) : LA99_6 = self.input.LA(4) if (LA99_6 == DASH) : LA99_8 = self.input.LA(5) if (LA99_8 == INT) : LA99_9 = self.input.LA(6) if (LA99_9 == COMMA) : LA99_11 = self.input.LA(7) if (LA99_11 == DASH) : LA99_13 = self.input.LA(8) if (LA99_13 == INT) : LA99_14 = self.input.LA(9) if (LA99_14 == R_PAREN) : LA99_16 = self.input.LA(10) if (LA99_16 == COMMA) : LA99_18 = self.input.LA(11) if (LA99_18 == L_PAREN) : LA99_19 = self.input.LA(12) if (LA99_19 == INT) : LA99_20 = self.input.LA(13) if (LA99_20 == COMMA) : LA99_21 = self.input.LA(14) if (LA99_21 == INT) : LA99_22 = self.input.LA(15) if (LA99_22 == R_PAREN) : LA99_23 = self.input.LA(16) if (LA99_23 == 225) : LA99_24 = self.input.LA(17) if (LA99_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_24 == 228) : LA99_25 = self.input.LA(18) if (LA99_25 == KEEP) : LA99_5 = self.input.LA(19) if (LA99_5 == SPECIFIC) : LA99_7 = self.input.LA(20) if (LA99_7 == GEODE) : LA99_10 = self.input.LA(21) if (LA99_10 == HYPERLINK) : LA99_12 = self.input.LA(22) if (LA99_12 == STRING) : LA99_15 = self.input.LA(23) if (LA99_15 == 225) : LA99_17 = self.input.LA(24) if (LA99_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_11 == INT) : LA99_14 = self.input.LA(8) if (LA99_14 == R_PAREN) : LA99_16 = self.input.LA(9) if (LA99_16 == COMMA) : LA99_18 = self.input.LA(10) if (LA99_18 == L_PAREN) : LA99_19 = self.input.LA(11) if (LA99_19 == INT) : LA99_20 = self.input.LA(12) if (LA99_20 == COMMA) : LA99_21 = self.input.LA(13) if (LA99_21 == INT) : LA99_22 = self.input.LA(14) if (LA99_22 == R_PAREN) : LA99_23 = self.input.LA(15) if (LA99_23 == 225) : LA99_24 = self.input.LA(16) if (LA99_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_24 == 228) : LA99_25 = self.input.LA(17) if (LA99_25 == KEEP) : LA99_5 = self.input.LA(18) if (LA99_5 == SPECIFIC) : LA99_7 = self.input.LA(19) if (LA99_7 == GEODE) : LA99_10 = self.input.LA(20) if (LA99_10 == HYPERLINK) : LA99_12 = self.input.LA(21) if (LA99_12 == STRING) : LA99_15 = self.input.LA(22) if (LA99_15 == 225) : LA99_17 = self.input.LA(23) if (LA99_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_6 == INT) : LA99_9 = self.input.LA(5) if (LA99_9 == COMMA) : LA99_11 = self.input.LA(6) if (LA99_11 == DASH) : LA99_13 = self.input.LA(7) if (LA99_13 == INT) : LA99_14 = self.input.LA(8) if (LA99_14 == R_PAREN) : LA99_16 = self.input.LA(9) if (LA99_16 == COMMA) : LA99_18 = self.input.LA(10) if (LA99_18 == L_PAREN) : LA99_19 = self.input.LA(11) if (LA99_19 == INT) : LA99_20 = self.input.LA(12) if (LA99_20 == COMMA) : LA99_21 = self.input.LA(13) if (LA99_21 == INT) : LA99_22 = self.input.LA(14) if (LA99_22 == R_PAREN) : LA99_23 = self.input.LA(15) if (LA99_23 == 225) : LA99_24 = self.input.LA(16) if (LA99_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_24 == 228) : LA99_25 = self.input.LA(17) if (LA99_25 == KEEP) : LA99_5 = self.input.LA(18) if (LA99_5 == SPECIFIC) : LA99_7 = self.input.LA(19) if (LA99_7 == GEODE) : LA99_10 = self.input.LA(20) if (LA99_10 == HYPERLINK) : LA99_12 = self.input.LA(21) if (LA99_12 == STRING) : LA99_15 = self.input.LA(22) if (LA99_15 == 225) : LA99_17 = self.input.LA(23) if (LA99_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_11 == INT) : LA99_14 = self.input.LA(7) if (LA99_14 == R_PAREN) : LA99_16 = self.input.LA(8) if (LA99_16 == COMMA) : LA99_18 = self.input.LA(9) if (LA99_18 == L_PAREN) : LA99_19 = self.input.LA(10) if (LA99_19 == INT) : LA99_20 = self.input.LA(11) if (LA99_20 == COMMA) : LA99_21 = self.input.LA(12) if (LA99_21 == INT) : LA99_22 = self.input.LA(13) if (LA99_22 == R_PAREN) : LA99_23 = self.input.LA(14) if (LA99_23 == 225) : LA99_24 = self.input.LA(15) if (LA99_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_24 == 228) : LA99_25 = self.input.LA(16) if (LA99_25 == KEEP) : LA99_5 = self.input.LA(17) if (LA99_5 == SPECIFIC) : LA99_7 = self.input.LA(18) if (LA99_7 == GEODE) : LA99_10 = self.input.LA(19) if (LA99_10 == HYPERLINK) : LA99_12 = self.input.LA(20) if (LA99_12 == STRING) : LA99_15 = self.input.LA(21) if (LA99_15 == 225) : LA99_17 = self.input.LA(22) if (LA99_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_1 == KEEP) : LA99_5 = self.input.LA(3) if (LA99_5 == SPECIFIC) : LA99_7 = self.input.LA(4) if (LA99_7 == GEODE) : LA99_10 = self.input.LA(5) if (LA99_10 == HYPERLINK) : LA99_12 = self.input.LA(6) if (LA99_12 == STRING) : LA99_15 = self.input.LA(7) if (LA99_15 == 225) : LA99_17 = self.input.LA(8) if (LA99_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt99 = 1 elif (LA99_0 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, JOIN, NEXTSTATE, OUTPUT, RESET, RETURN, SET, STOP, STRING, TASK}) : alt99 = 1 if alt99 == 1: # sdl92.g:622:17: transition pass self._state.following.append(self.FOLLOW_transition_in_connect_part6943) transition291 = self.transition() self._state.following.pop() if self._state.backtracking == 0: stream_transition.add(transition291.tree) # AST Rewrite # elements: CONNECT, cif, hyperlink, connect_list, end, transition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 623:9: -> ^( CONNECT ( cif )? ( hyperlink )? ( connect_list )? ( end )? ( transition )? ) # sdl92.g:623:17: ^( CONNECT ( cif )? ( hyperlink )? ( connect_list )? ( end )? ( transition )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_CONNECT.nextNode() , root_1) # sdl92.g:623:27: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:623:32: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); # sdl92.g:623:43: ( connect_list )? if stream_connect_list.hasNext(): self._adaptor.addChild(root_1, stream_connect_list.nextTree()) stream_connect_list.reset(); # sdl92.g:623:57: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); # sdl92.g:623:62: ( transition )? if stream_transition.hasNext(): self._adaptor.addChild(root_1, stream_transition.nextTree()) stream_transition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "connect_part" class connect_list_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "connect_list" # sdl92.g:627:1: connect_list : ( state_exit_point_name ( ',' state_exit_point_name )* -> ( state_exit_point_name )+ | ASTERISK ); def connect_list(self, ): retval = self.connect_list_return() retval.start = self.input.LT(1) root_0 = None char_literal293 = None ASTERISK295 = None state_exit_point_name292 = None state_exit_point_name294 = None char_literal293_tree = None ASTERISK295_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_state_exit_point_name = RewriteRuleSubtreeStream(self._adaptor, "rule state_exit_point_name") try: try: # sdl92.g:628:9: ( state_exit_point_name ( ',' state_exit_point_name )* -> ( state_exit_point_name )+ | ASTERISK ) alt101 = 2 LA101_0 = self.input.LA(1) if (LA101_0 == ID) : alt101 = 1 elif (LA101_0 == ASTERISK) : alt101 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 101, 0, self.input) raise nvae if alt101 == 1: # sdl92.g:628:17: state_exit_point_name ( ',' state_exit_point_name )* pass self._state.following.append(self.FOLLOW_state_exit_point_name_in_connect_list7010) state_exit_point_name292 = self.state_exit_point_name() self._state.following.pop() if self._state.backtracking == 0: stream_state_exit_point_name.add(state_exit_point_name292.tree) # sdl92.g:628:39: ( ',' state_exit_point_name )* while True: #loop100 alt100 = 2 LA100_0 = self.input.LA(1) if (LA100_0 == COMMA) : alt100 = 1 if alt100 == 1: # sdl92.g:628:40: ',' state_exit_point_name pass char_literal293 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_connect_list7013) if self._state.backtracking == 0: stream_COMMA.add(char_literal293) self._state.following.append(self.FOLLOW_state_exit_point_name_in_connect_list7015) state_exit_point_name294 = self.state_exit_point_name() self._state.following.pop() if self._state.backtracking == 0: stream_state_exit_point_name.add(state_exit_point_name294.tree) else: break #loop100 # AST Rewrite # elements: state_exit_point_name # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 629:17: -> ( state_exit_point_name )+ # sdl92.g:629:20: ( state_exit_point_name )+ if not (stream_state_exit_point_name.hasNext()): raise RewriteEarlyExitException() while stream_state_exit_point_name.hasNext(): self._adaptor.addChild(root_0, stream_state_exit_point_name.nextTree()) stream_state_exit_point_name.reset() retval.tree = root_0 elif alt101 == 2: # sdl92.g:630:19: ASTERISK pass root_0 = self._adaptor.nil() ASTERISK295 = self.match(self.input, ASTERISK, self.FOLLOW_ASTERISK_in_connect_list7058) if self._state.backtracking == 0: ASTERISK295_tree = self._adaptor.createWithPayload(ASTERISK295) self._adaptor.addChild(root_0, ASTERISK295_tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "connect_list" class spontaneous_transition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "spontaneous_transition" # sdl92.g:634:1: spontaneous_transition : ( cif )? ( hyperlink )? INPUT NONE end ( enabling_condition )? transition -> ^( INPUT_NONE ( cif )? ( hyperlink )? transition ) ; def spontaneous_transition(self, ): retval = self.spontaneous_transition_return() retval.start = self.input.LT(1) root_0 = None INPUT298 = None NONE299 = None cif296 = None hyperlink297 = None end300 = None enabling_condition301 = None transition302 = None INPUT298_tree = None NONE299_tree = None stream_INPUT = RewriteRuleTokenStream(self._adaptor, "token INPUT") stream_NONE = RewriteRuleTokenStream(self._adaptor, "token NONE") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_enabling_condition = RewriteRuleSubtreeStream(self._adaptor, "rule enabling_condition") stream_transition = RewriteRuleSubtreeStream(self._adaptor, "rule transition") try: try: # sdl92.g:635:9: ( ( cif )? ( hyperlink )? INPUT NONE end ( enabling_condition )? transition -> ^( INPUT_NONE ( cif )? ( hyperlink )? transition ) ) # sdl92.g:635:17: ( cif )? ( hyperlink )? INPUT NONE end ( enabling_condition )? transition pass # sdl92.g:635:17: ( cif )? alt102 = 2 LA102_0 = self.input.LA(1) if (LA102_0 == 228) : LA102_1 = self.input.LA(2) if (LA102_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt102 = 1 if alt102 == 1: # sdl92.g:635:17: cif pass self._state.following.append(self.FOLLOW_cif_in_spontaneous_transition7090) cif296 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif296.tree) # sdl92.g:636:17: ( hyperlink )? alt103 = 2 LA103_0 = self.input.LA(1) if (LA103_0 == 228) : alt103 = 1 if alt103 == 1: # sdl92.g:636:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_spontaneous_transition7109) hyperlink297 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink297.tree) INPUT298 = self.match(self.input, INPUT, self.FOLLOW_INPUT_in_spontaneous_transition7128) if self._state.backtracking == 0: stream_INPUT.add(INPUT298) NONE299 = self.match(self.input, NONE, self.FOLLOW_NONE_in_spontaneous_transition7130) if self._state.backtracking == 0: stream_NONE.add(NONE299) self._state.following.append(self.FOLLOW_end_in_spontaneous_transition7132) end300 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end300.tree) # sdl92.g:638:17: ( enabling_condition )? alt104 = 2 LA104_0 = self.input.LA(1) if (LA104_0 == PROVIDED) : alt104 = 1 if alt104 == 1: # sdl92.g:638:17: enabling_condition pass self._state.following.append(self.FOLLOW_enabling_condition_in_spontaneous_transition7150) enabling_condition301 = self.enabling_condition() self._state.following.pop() if self._state.backtracking == 0: stream_enabling_condition.add(enabling_condition301.tree) self._state.following.append(self.FOLLOW_transition_in_spontaneous_transition7169) transition302 = self.transition() self._state.following.pop() if self._state.backtracking == 0: stream_transition.add(transition302.tree) # AST Rewrite # elements: cif, hyperlink, transition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 640:9: -> ^( INPUT_NONE ( cif )? ( hyperlink )? transition ) # sdl92.g:640:17: ^( INPUT_NONE ( cif )? ( hyperlink )? transition ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(INPUT_NONE, "INPUT_NONE") , root_1) # sdl92.g:640:30: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:640:35: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); self._adaptor.addChild(root_1, stream_transition.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "spontaneous_transition" class enabling_condition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "enabling_condition" # sdl92.g:644:1: enabling_condition : PROVIDED expression end -> ^( PROVIDED expression ) ; def enabling_condition(self, ): retval = self.enabling_condition_return() retval.start = self.input.LT(1) root_0 = None PROVIDED303 = None expression304 = None end305 = None PROVIDED303_tree = None stream_PROVIDED = RewriteRuleTokenStream(self._adaptor, "token PROVIDED") stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:645:9: ( PROVIDED expression end -> ^( PROVIDED expression ) ) # sdl92.g:645:17: PROVIDED expression end pass PROVIDED303 = self.match(self.input, PROVIDED, self.FOLLOW_PROVIDED_in_enabling_condition7228) if self._state.backtracking == 0: stream_PROVIDED.add(PROVIDED303) self._state.following.append(self.FOLLOW_expression_in_enabling_condition7230) expression304 = self.expression() self._state.following.pop() if self._state.backtracking == 0: stream_expression.add(expression304.tree) self._state.following.append(self.FOLLOW_end_in_enabling_condition7232) end305 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end305.tree) # AST Rewrite # elements: PROVIDED, expression # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 646:9: -> ^( PROVIDED expression ) # sdl92.g:646:17: ^( PROVIDED expression ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_PROVIDED.nextNode() , root_1) self._adaptor.addChild(root_1, stream_expression.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "enabling_condition" class continuous_signal_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "continuous_signal" # sdl92.g:650:1: continuous_signal : ( cif )? ( hyperlink )? PROVIDED expression e= end ( PRIORITY p= INT end )? ( transition )? -> ^( PROVIDED expression ( cif )? ( hyperlink )? ( $p)? ( $e)? ( transition )? ) ; def continuous_signal(self, ): retval = self.continuous_signal_return() retval.start = self.input.LT(1) root_0 = None p = None PROVIDED308 = None PRIORITY310 = None e = None cif306 = None hyperlink307 = None expression309 = None end311 = None transition312 = None p_tree = None PROVIDED308_tree = None PRIORITY310_tree = None stream_PROVIDED = RewriteRuleTokenStream(self._adaptor, "token PROVIDED") stream_PRIORITY = RewriteRuleTokenStream(self._adaptor, "token PRIORITY") stream_INT = RewriteRuleTokenStream(self._adaptor, "token INT") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_transition = RewriteRuleSubtreeStream(self._adaptor, "rule transition") try: try: # sdl92.g:651:9: ( ( cif )? ( hyperlink )? PROVIDED expression e= end ( PRIORITY p= INT end )? ( transition )? -> ^( PROVIDED expression ( cif )? ( hyperlink )? ( $p)? ( $e)? ( transition )? ) ) # sdl92.g:651:17: ( cif )? ( hyperlink )? PROVIDED expression e= end ( PRIORITY p= INT end )? ( transition )? pass # sdl92.g:651:17: ( cif )? alt105 = 2 LA105_0 = self.input.LA(1) if (LA105_0 == 228) : LA105_1 = self.input.LA(2) if (LA105_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt105 = 1 if alt105 == 1: # sdl92.g:651:17: cif pass self._state.following.append(self.FOLLOW_cif_in_continuous_signal7285) cif306 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif306.tree) # sdl92.g:652:17: ( hyperlink )? alt106 = 2 LA106_0 = self.input.LA(1) if (LA106_0 == 228) : alt106 = 1 if alt106 == 1: # sdl92.g:652:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_continuous_signal7304) hyperlink307 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink307.tree) PROVIDED308 = self.match(self.input, PROVIDED, self.FOLLOW_PROVIDED_in_continuous_signal7323) if self._state.backtracking == 0: stream_PROVIDED.add(PROVIDED308) self._state.following.append(self.FOLLOW_expression_in_continuous_signal7325) expression309 = self.expression() self._state.following.pop() if self._state.backtracking == 0: stream_expression.add(expression309.tree) self._state.following.append(self.FOLLOW_end_in_continuous_signal7329) e = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(e.tree) # sdl92.g:654:17: ( PRIORITY p= INT end )? alt107 = 2 LA107_0 = self.input.LA(1) if (LA107_0 == PRIORITY) : alt107 = 1 if alt107 == 1: # sdl92.g:654:18: PRIORITY p= INT end pass PRIORITY310 = self.match(self.input, PRIORITY, self.FOLLOW_PRIORITY_in_continuous_signal7348) if self._state.backtracking == 0: stream_PRIORITY.add(PRIORITY310) p = self.match(self.input, INT, self.FOLLOW_INT_in_continuous_signal7352) if self._state.backtracking == 0: stream_INT.add(p) self._state.following.append(self.FOLLOW_end_in_continuous_signal7354) end311 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end311.tree) # sdl92.g:655:17: ( transition )? alt108 = 2 LA108_0 = self.input.LA(1) if (LA108_0 == 228) : LA108_1 = self.input.LA(2) if (LA108_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA108_4 = self.input.LA(3) if (LA108_4 == L_PAREN) : LA108_6 = self.input.LA(4) if (LA108_6 == DASH) : LA108_8 = self.input.LA(5) if (LA108_8 == INT) : LA108_9 = self.input.LA(6) if (LA108_9 == COMMA) : LA108_11 = self.input.LA(7) if (LA108_11 == DASH) : LA108_13 = self.input.LA(8) if (LA108_13 == INT) : LA108_14 = self.input.LA(9) if (LA108_14 == R_PAREN) : LA108_16 = self.input.LA(10) if (LA108_16 == COMMA) : LA108_18 = self.input.LA(11) if (LA108_18 == L_PAREN) : LA108_19 = self.input.LA(12) if (LA108_19 == INT) : LA108_20 = self.input.LA(13) if (LA108_20 == COMMA) : LA108_21 = self.input.LA(14) if (LA108_21 == INT) : LA108_22 = self.input.LA(15) if (LA108_22 == R_PAREN) : LA108_23 = self.input.LA(16) if (LA108_23 == 225) : LA108_24 = self.input.LA(17) if (LA108_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_24 == 228) : LA108_25 = self.input.LA(18) if (LA108_25 == KEEP) : LA108_5 = self.input.LA(19) if (LA108_5 == SPECIFIC) : LA108_7 = self.input.LA(20) if (LA108_7 == GEODE) : LA108_10 = self.input.LA(21) if (LA108_10 == HYPERLINK) : LA108_12 = self.input.LA(22) if (LA108_12 == STRING) : LA108_15 = self.input.LA(23) if (LA108_15 == 225) : LA108_17 = self.input.LA(24) if (LA108_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_11 == INT) : LA108_14 = self.input.LA(8) if (LA108_14 == R_PAREN) : LA108_16 = self.input.LA(9) if (LA108_16 == COMMA) : LA108_18 = self.input.LA(10) if (LA108_18 == L_PAREN) : LA108_19 = self.input.LA(11) if (LA108_19 == INT) : LA108_20 = self.input.LA(12) if (LA108_20 == COMMA) : LA108_21 = self.input.LA(13) if (LA108_21 == INT) : LA108_22 = self.input.LA(14) if (LA108_22 == R_PAREN) : LA108_23 = self.input.LA(15) if (LA108_23 == 225) : LA108_24 = self.input.LA(16) if (LA108_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_24 == 228) : LA108_25 = self.input.LA(17) if (LA108_25 == KEEP) : LA108_5 = self.input.LA(18) if (LA108_5 == SPECIFIC) : LA108_7 = self.input.LA(19) if (LA108_7 == GEODE) : LA108_10 = self.input.LA(20) if (LA108_10 == HYPERLINK) : LA108_12 = self.input.LA(21) if (LA108_12 == STRING) : LA108_15 = self.input.LA(22) if (LA108_15 == 225) : LA108_17 = self.input.LA(23) if (LA108_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_6 == INT) : LA108_9 = self.input.LA(5) if (LA108_9 == COMMA) : LA108_11 = self.input.LA(6) if (LA108_11 == DASH) : LA108_13 = self.input.LA(7) if (LA108_13 == INT) : LA108_14 = self.input.LA(8) if (LA108_14 == R_PAREN) : LA108_16 = self.input.LA(9) if (LA108_16 == COMMA) : LA108_18 = self.input.LA(10) if (LA108_18 == L_PAREN) : LA108_19 = self.input.LA(11) if (LA108_19 == INT) : LA108_20 = self.input.LA(12) if (LA108_20 == COMMA) : LA108_21 = self.input.LA(13) if (LA108_21 == INT) : LA108_22 = self.input.LA(14) if (LA108_22 == R_PAREN) : LA108_23 = self.input.LA(15) if (LA108_23 == 225) : LA108_24 = self.input.LA(16) if (LA108_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_24 == 228) : LA108_25 = self.input.LA(17) if (LA108_25 == KEEP) : LA108_5 = self.input.LA(18) if (LA108_5 == SPECIFIC) : LA108_7 = self.input.LA(19) if (LA108_7 == GEODE) : LA108_10 = self.input.LA(20) if (LA108_10 == HYPERLINK) : LA108_12 = self.input.LA(21) if (LA108_12 == STRING) : LA108_15 = self.input.LA(22) if (LA108_15 == 225) : LA108_17 = self.input.LA(23) if (LA108_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_11 == INT) : LA108_14 = self.input.LA(7) if (LA108_14 == R_PAREN) : LA108_16 = self.input.LA(8) if (LA108_16 == COMMA) : LA108_18 = self.input.LA(9) if (LA108_18 == L_PAREN) : LA108_19 = self.input.LA(10) if (LA108_19 == INT) : LA108_20 = self.input.LA(11) if (LA108_20 == COMMA) : LA108_21 = self.input.LA(12) if (LA108_21 == INT) : LA108_22 = self.input.LA(13) if (LA108_22 == R_PAREN) : LA108_23 = self.input.LA(14) if (LA108_23 == 225) : LA108_24 = self.input.LA(15) if (LA108_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_24 == 228) : LA108_25 = self.input.LA(16) if (LA108_25 == KEEP) : LA108_5 = self.input.LA(17) if (LA108_5 == SPECIFIC) : LA108_7 = self.input.LA(18) if (LA108_7 == GEODE) : LA108_10 = self.input.LA(19) if (LA108_10 == HYPERLINK) : LA108_12 = self.input.LA(20) if (LA108_12 == STRING) : LA108_15 = self.input.LA(21) if (LA108_15 == 225) : LA108_17 = self.input.LA(22) if (LA108_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_1 == KEEP) : LA108_5 = self.input.LA(3) if (LA108_5 == SPECIFIC) : LA108_7 = self.input.LA(4) if (LA108_7 == GEODE) : LA108_10 = self.input.LA(5) if (LA108_10 == HYPERLINK) : LA108_12 = self.input.LA(6) if (LA108_12 == STRING) : LA108_15 = self.input.LA(7) if (LA108_15 == 225) : LA108_17 = self.input.LA(8) if (LA108_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt108 = 1 elif (LA108_0 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, JOIN, NEXTSTATE, OUTPUT, RESET, RETURN, SET, STOP, STRING, TASK}) : alt108 = 1 if alt108 == 1: # sdl92.g:655:17: transition pass self._state.following.append(self.FOLLOW_transition_in_continuous_signal7374) transition312 = self.transition() self._state.following.pop() if self._state.backtracking == 0: stream_transition.add(transition312.tree) # AST Rewrite # elements: PROVIDED, expression, cif, hyperlink, p, e, transition # token labels: p # rule labels: e, retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 stream_p = RewriteRuleTokenStream(self._adaptor, "token p", p) if e is not None: stream_e = RewriteRuleSubtreeStream(self._adaptor, "rule e", e.tree) else: stream_e = RewriteRuleSubtreeStream(self._adaptor, "token e", None) if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 656:9: -> ^( PROVIDED expression ( cif )? ( hyperlink )? ( $p)? ( $e)? ( transition )? ) # sdl92.g:656:17: ^( PROVIDED expression ( cif )? ( hyperlink )? ( $p)? ( $e)? ( transition )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_PROVIDED.nextNode() , root_1) self._adaptor.addChild(root_1, stream_expression.nextTree()) # sdl92.g:656:39: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:656:44: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); # sdl92.g:656:56: ( $p)? if stream_p.hasNext(): self._adaptor.addChild(root_1, stream_p.nextNode()) stream_p.reset(); # sdl92.g:656:60: ( $e)? if stream_e.hasNext(): self._adaptor.addChild(root_1, stream_e.nextTree()) stream_e.reset(); # sdl92.g:656:63: ( transition )? if stream_transition.hasNext(): self._adaptor.addChild(root_1, stream_transition.nextTree()) stream_transition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "continuous_signal" class save_part_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "save_part" # sdl92.g:660:1: save_part : SAVE save_list end -> ^( SAVE save_list ) ; def save_part(self, ): retval = self.save_part_return() retval.start = self.input.LT(1) root_0 = None SAVE313 = None save_list314 = None end315 = None SAVE313_tree = None stream_SAVE = RewriteRuleTokenStream(self._adaptor, "token SAVE") stream_save_list = RewriteRuleSubtreeStream(self._adaptor, "rule save_list") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") try: try: # sdl92.g:661:9: ( SAVE save_list end -> ^( SAVE save_list ) ) # sdl92.g:661:17: SAVE save_list end pass SAVE313 = self.match(self.input, SAVE, self.FOLLOW_SAVE_in_save_part7445) if self._state.backtracking == 0: stream_SAVE.add(SAVE313) self._state.following.append(self.FOLLOW_save_list_in_save_part7447) save_list314 = self.save_list() self._state.following.pop() if self._state.backtracking == 0: stream_save_list.add(save_list314.tree) self._state.following.append(self.FOLLOW_end_in_save_part7465) end315 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end315.tree) # AST Rewrite # elements: SAVE, save_list # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 663:9: -> ^( SAVE save_list ) # sdl92.g:663:17: ^( SAVE save_list ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_SAVE.nextNode() , root_1) self._adaptor.addChild(root_1, stream_save_list.nextTree()) self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "save_part" class save_list_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "save_list" # sdl92.g:667:1: save_list : ( signal_list | asterisk_save_list ); def save_list(self, ): retval = self.save_list_return() retval.start = self.input.LT(1) root_0 = None signal_list316 = None asterisk_save_list317 = None try: try: # sdl92.g:668:9: ( signal_list | asterisk_save_list ) alt109 = 2 LA109_0 = self.input.LA(1) if (LA109_0 == ID) : alt109 = 1 elif (LA109_0 == ASTERISK) : alt109 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 109, 0, self.input) raise nvae if alt109 == 1: # sdl92.g:668:17: signal_list pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_signal_list_in_save_list7518) signal_list316 = self.signal_list() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, signal_list316.tree) elif alt109 == 2: # sdl92.g:669:19: asterisk_save_list pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_asterisk_save_list_in_save_list7538) asterisk_save_list317 = self.asterisk_save_list() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, asterisk_save_list317.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "save_list" class asterisk_save_list_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "asterisk_save_list" # sdl92.g:673:1: asterisk_save_list : ASTERISK ; def asterisk_save_list(self, ): retval = self.asterisk_save_list_return() retval.start = self.input.LT(1) root_0 = None ASTERISK318 = None ASTERISK318_tree = None try: try: # sdl92.g:674:9: ( ASTERISK ) # sdl92.g:674:17: ASTERISK pass root_0 = self._adaptor.nil() ASTERISK318 = self.match(self.input, ASTERISK, self.FOLLOW_ASTERISK_in_asterisk_save_list7570) if self._state.backtracking == 0: ASTERISK318_tree = self._adaptor.createWithPayload(ASTERISK318) self._adaptor.addChild(root_0, ASTERISK318_tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "asterisk_save_list" class signal_list_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "signal_list" # sdl92.g:677:1: signal_list : signal_item ( ',' signal_item )* -> ^( SIGNAL_LIST ( signal_item )+ ) ; def signal_list(self, ): retval = self.signal_list_return() retval.start = self.input.LT(1) root_0 = None char_literal320 = None signal_item319 = None signal_item321 = None char_literal320_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_signal_item = RewriteRuleSubtreeStream(self._adaptor, "rule signal_item") try: try: # sdl92.g:678:9: ( signal_item ( ',' signal_item )* -> ^( SIGNAL_LIST ( signal_item )+ ) ) # sdl92.g:678:17: signal_item ( ',' signal_item )* pass self._state.following.append(self.FOLLOW_signal_item_in_signal_list7593) signal_item319 = self.signal_item() self._state.following.pop() if self._state.backtracking == 0: stream_signal_item.add(signal_item319.tree) # sdl92.g:678:29: ( ',' signal_item )* while True: #loop110 alt110 = 2 LA110_0 = self.input.LA(1) if (LA110_0 == COMMA) : alt110 = 1 if alt110 == 1: # sdl92.g:678:30: ',' signal_item pass char_literal320 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_signal_list7596) if self._state.backtracking == 0: stream_COMMA.add(char_literal320) self._state.following.append(self.FOLLOW_signal_item_in_signal_list7598) signal_item321 = self.signal_item() self._state.following.pop() if self._state.backtracking == 0: stream_signal_item.add(signal_item321.tree) else: break #loop110 # AST Rewrite # elements: signal_item # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 679:9: -> ^( SIGNAL_LIST ( signal_item )+ ) # sdl92.g:679:17: ^( SIGNAL_LIST ( signal_item )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(SIGNAL_LIST, "SIGNAL_LIST") , root_1) # sdl92.g:679:31: ( signal_item )+ if not (stream_signal_item.hasNext()): raise RewriteEarlyExitException() while stream_signal_item.hasNext(): self._adaptor.addChild(root_1, stream_signal_item.nextTree()) stream_signal_item.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "signal_list" class signal_item_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "signal_item" # sdl92.g:686:1: signal_item : signal_id ; def signal_item(self, ): retval = self.signal_item_return() retval.start = self.input.LT(1) root_0 = None signal_id322 = None try: try: # sdl92.g:687:9: ( signal_id ) # sdl92.g:687:17: signal_id pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_signal_id_in_signal_item7657) signal_id322 = self.signal_id() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, signal_id322.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "signal_item" class input_part_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "input_part" # sdl92.g:707:1: input_part : ( cif )? ( hyperlink )? INPUT inputlist end ( enabling_condition )? ( transition )? -> ^( INPUT ( cif )? ( hyperlink )? ( end )? inputlist ( enabling_condition )? ( transition )? ) ; def input_part(self, ): retval = self.input_part_return() retval.start = self.input.LT(1) root_0 = None INPUT325 = None cif323 = None hyperlink324 = None inputlist326 = None end327 = None enabling_condition328 = None transition329 = None INPUT325_tree = None stream_INPUT = RewriteRuleTokenStream(self._adaptor, "token INPUT") stream_cif = RewriteRuleSubtreeStream(self._adaptor, "rule cif") stream_hyperlink = RewriteRuleSubtreeStream(self._adaptor, "rule hyperlink") stream_inputlist = RewriteRuleSubtreeStream(self._adaptor, "rule inputlist") stream_end = RewriteRuleSubtreeStream(self._adaptor, "rule end") stream_enabling_condition = RewriteRuleSubtreeStream(self._adaptor, "rule enabling_condition") stream_transition = RewriteRuleSubtreeStream(self._adaptor, "rule transition") try: try: # sdl92.g:708:9: ( ( cif )? ( hyperlink )? INPUT inputlist end ( enabling_condition )? ( transition )? -> ^( INPUT ( cif )? ( hyperlink )? ( end )? inputlist ( enabling_condition )? ( transition )? ) ) # sdl92.g:708:17: ( cif )? ( hyperlink )? INPUT inputlist end ( enabling_condition )? ( transition )? pass # sdl92.g:708:17: ( cif )? alt111 = 2 LA111_0 = self.input.LA(1) if (LA111_0 == 228) : LA111_1 = self.input.LA(2) if (LA111_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : alt111 = 1 if alt111 == 1: # sdl92.g:708:17: cif pass self._state.following.append(self.FOLLOW_cif_in_input_part7686) cif323 = self.cif() self._state.following.pop() if self._state.backtracking == 0: stream_cif.add(cif323.tree) # sdl92.g:709:17: ( hyperlink )? alt112 = 2 LA112_0 = self.input.LA(1) if (LA112_0 == 228) : alt112 = 1 if alt112 == 1: # sdl92.g:709:17: hyperlink pass self._state.following.append(self.FOLLOW_hyperlink_in_input_part7705) hyperlink324 = self.hyperlink() self._state.following.pop() if self._state.backtracking == 0: stream_hyperlink.add(hyperlink324.tree) INPUT325 = self.match(self.input, INPUT, self.FOLLOW_INPUT_in_input_part7724) if self._state.backtracking == 0: stream_INPUT.add(INPUT325) self._state.following.append(self.FOLLOW_inputlist_in_input_part7726) inputlist326 = self.inputlist() self._state.following.pop() if self._state.backtracking == 0: stream_inputlist.add(inputlist326.tree) self._state.following.append(self.FOLLOW_end_in_input_part7728) end327 = self.end() self._state.following.pop() if self._state.backtracking == 0: stream_end.add(end327.tree) # sdl92.g:711:17: ( enabling_condition )? alt113 = 2 LA113_0 = self.input.LA(1) if (LA113_0 == PROVIDED) : LA113_1 = self.input.LA(2) if (self.synpred144_sdl92()) : alt113 = 1 if alt113 == 1: # sdl92.g:711:17: enabling_condition pass self._state.following.append(self.FOLLOW_enabling_condition_in_input_part7746) enabling_condition328 = self.enabling_condition() self._state.following.pop() if self._state.backtracking == 0: stream_enabling_condition.add(enabling_condition328.tree) # sdl92.g:712:17: ( transition )? alt114 = 2 LA114_0 = self.input.LA(1) if (LA114_0 == 228) : LA114_1 = self.input.LA(2) if (LA114_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA114_4 = self.input.LA(3) if (LA114_4 == L_PAREN) : LA114_6 = self.input.LA(4) if (LA114_6 == DASH) : LA114_8 = self.input.LA(5) if (LA114_8 == INT) : LA114_9 = self.input.LA(6) if (LA114_9 == COMMA) : LA114_11 = self.input.LA(7) if (LA114_11 == DASH) : LA114_13 = self.input.LA(8) if (LA114_13 == INT) : LA114_14 = self.input.LA(9) if (LA114_14 == R_PAREN) : LA114_16 = self.input.LA(10) if (LA114_16 == COMMA) : LA114_18 = self.input.LA(11) if (LA114_18 == L_PAREN) : LA114_19 = self.input.LA(12) if (LA114_19 == INT) : LA114_20 = self.input.LA(13) if (LA114_20 == COMMA) : LA114_21 = self.input.LA(14) if (LA114_21 == INT) : LA114_22 = self.input.LA(15) if (LA114_22 == R_PAREN) : LA114_23 = self.input.LA(16) if (LA114_23 == 225) : LA114_24 = self.input.LA(17) if (LA114_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_24 == 228) : LA114_25 = self.input.LA(18) if (LA114_25 == KEEP) : LA114_5 = self.input.LA(19) if (LA114_5 == SPECIFIC) : LA114_7 = self.input.LA(20) if (LA114_7 == GEODE) : LA114_10 = self.input.LA(21) if (LA114_10 == HYPERLINK) : LA114_12 = self.input.LA(22) if (LA114_12 == STRING) : LA114_15 = self.input.LA(23) if (LA114_15 == 225) : LA114_17 = self.input.LA(24) if (LA114_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_11 == INT) : LA114_14 = self.input.LA(8) if (LA114_14 == R_PAREN) : LA114_16 = self.input.LA(9) if (LA114_16 == COMMA) : LA114_18 = self.input.LA(10) if (LA114_18 == L_PAREN) : LA114_19 = self.input.LA(11) if (LA114_19 == INT) : LA114_20 = self.input.LA(12) if (LA114_20 == COMMA) : LA114_21 = self.input.LA(13) if (LA114_21 == INT) : LA114_22 = self.input.LA(14) if (LA114_22 == R_PAREN) : LA114_23 = self.input.LA(15) if (LA114_23 == 225) : LA114_24 = self.input.LA(16) if (LA114_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_24 == 228) : LA114_25 = self.input.LA(17) if (LA114_25 == KEEP) : LA114_5 = self.input.LA(18) if (LA114_5 == SPECIFIC) : LA114_7 = self.input.LA(19) if (LA114_7 == GEODE) : LA114_10 = self.input.LA(20) if (LA114_10 == HYPERLINK) : LA114_12 = self.input.LA(21) if (LA114_12 == STRING) : LA114_15 = self.input.LA(22) if (LA114_15 == 225) : LA114_17 = self.input.LA(23) if (LA114_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_6 == INT) : LA114_9 = self.input.LA(5) if (LA114_9 == COMMA) : LA114_11 = self.input.LA(6) if (LA114_11 == DASH) : LA114_13 = self.input.LA(7) if (LA114_13 == INT) : LA114_14 = self.input.LA(8) if (LA114_14 == R_PAREN) : LA114_16 = self.input.LA(9) if (LA114_16 == COMMA) : LA114_18 = self.input.LA(10) if (LA114_18 == L_PAREN) : LA114_19 = self.input.LA(11) if (LA114_19 == INT) : LA114_20 = self.input.LA(12) if (LA114_20 == COMMA) : LA114_21 = self.input.LA(13) if (LA114_21 == INT) : LA114_22 = self.input.LA(14) if (LA114_22 == R_PAREN) : LA114_23 = self.input.LA(15) if (LA114_23 == 225) : LA114_24 = self.input.LA(16) if (LA114_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_24 == 228) : LA114_25 = self.input.LA(17) if (LA114_25 == KEEP) : LA114_5 = self.input.LA(18) if (LA114_5 == SPECIFIC) : LA114_7 = self.input.LA(19) if (LA114_7 == GEODE) : LA114_10 = self.input.LA(20) if (LA114_10 == HYPERLINK) : LA114_12 = self.input.LA(21) if (LA114_12 == STRING) : LA114_15 = self.input.LA(22) if (LA114_15 == 225) : LA114_17 = self.input.LA(23) if (LA114_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_11 == INT) : LA114_14 = self.input.LA(7) if (LA114_14 == R_PAREN) : LA114_16 = self.input.LA(8) if (LA114_16 == COMMA) : LA114_18 = self.input.LA(9) if (LA114_18 == L_PAREN) : LA114_19 = self.input.LA(10) if (LA114_19 == INT) : LA114_20 = self.input.LA(11) if (LA114_20 == COMMA) : LA114_21 = self.input.LA(12) if (LA114_21 == INT) : LA114_22 = self.input.LA(13) if (LA114_22 == R_PAREN) : LA114_23 = self.input.LA(14) if (LA114_23 == 225) : LA114_24 = self.input.LA(15) if (LA114_24 in {CALL, DECISION, ID, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_24 == 228) : LA114_25 = self.input.LA(16) if (LA114_25 == KEEP) : LA114_5 = self.input.LA(17) if (LA114_5 == SPECIFIC) : LA114_7 = self.input.LA(18) if (LA114_7 == GEODE) : LA114_10 = self.input.LA(19) if (LA114_10 == HYPERLINK) : LA114_12 = self.input.LA(20) if (LA114_12 == STRING) : LA114_15 = self.input.LA(21) if (LA114_15 == 225) : LA114_17 = self.input.LA(22) if (LA114_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_1 == KEEP) : LA114_5 = self.input.LA(3) if (LA114_5 == SPECIFIC) : LA114_7 = self.input.LA(4) if (LA114_7 == GEODE) : LA114_10 = self.input.LA(5) if (LA114_10 == HYPERLINK) : LA114_12 = self.input.LA(6) if (LA114_12 == STRING) : LA114_15 = self.input.LA(7) if (LA114_15 == 225) : LA114_17 = self.input.LA(8) if (LA114_17 in {CALL, DECISION, JOIN, NEXTSTATE, OUTPUT, RETURN, STOP, TASK}) : alt114 = 1 elif (LA114_0 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, JOIN, NEXTSTATE, OUTPUT, RESET, RETURN, SET, STOP, STRING, TASK}) : alt114 = 1 if alt114 == 1: # sdl92.g:712:17: transition pass self._state.following.append(self.FOLLOW_transition_in_input_part7765) transition329 = self.transition() self._state.following.pop() if self._state.backtracking == 0: stream_transition.add(transition329.tree) # AST Rewrite # elements: INPUT, cif, hyperlink, end, inputlist, enabling_condition, transition # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 713:9: -> ^( INPUT ( cif )? ( hyperlink )? ( end )? inputlist ( enabling_condition )? ( transition )? ) # sdl92.g:713:17: ^( INPUT ( cif )? ( hyperlink )? ( end )? inputlist ( enabling_condition )? ( transition )? ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( stream_INPUT.nextNode() , root_1) # sdl92.g:713:25: ( cif )? if stream_cif.hasNext(): self._adaptor.addChild(root_1, stream_cif.nextTree()) stream_cif.reset(); # sdl92.g:713:30: ( hyperlink )? if stream_hyperlink.hasNext(): self._adaptor.addChild(root_1, stream_hyperlink.nextTree()) stream_hyperlink.reset(); # sdl92.g:713:41: ( end )? if stream_end.hasNext(): self._adaptor.addChild(root_1, stream_end.nextTree()) stream_end.reset(); self._adaptor.addChild(root_1, stream_inputlist.nextTree()) # sdl92.g:714:27: ( enabling_condition )? if stream_enabling_condition.hasNext(): self._adaptor.addChild(root_1, stream_enabling_condition.nextTree()) stream_enabling_condition.reset(); # sdl92.g:714:47: ( transition )? if stream_transition.hasNext(): self._adaptor.addChild(root_1, stream_transition.nextTree()) stream_transition.reset(); self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "input_part" class inputlist_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "inputlist" # sdl92.g:720:1: inputlist : ( ASTERISK | ( stimulus ( ',' stimulus )* ) -> ^( INPUTLIST ( stimulus )+ ) ); def inputlist(self, ): retval = self.inputlist_return() retval.start = self.input.LT(1) root_0 = None ASTERISK330 = None char_literal332 = None stimulus331 = None stimulus333 = None ASTERISK330_tree = None char_literal332_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_stimulus = RewriteRuleSubtreeStream(self._adaptor, "rule stimulus") try: try: # sdl92.g:721:9: ( ASTERISK | ( stimulus ( ',' stimulus )* ) -> ^( INPUTLIST ( stimulus )+ ) ) alt116 = 2 LA116_0 = self.input.LA(1) if (LA116_0 == ASTERISK) : alt116 = 1 elif (LA116_0 == ID) : alt116 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 116, 0, self.input) raise nvae if alt116 == 1: # sdl92.g:721:17: ASTERISK pass root_0 = self._adaptor.nil() ASTERISK330 = self.match(self.input, ASTERISK, self.FOLLOW_ASTERISK_in_inputlist7852) if self._state.backtracking == 0: ASTERISK330_tree = self._adaptor.createWithPayload(ASTERISK330) self._adaptor.addChild(root_0, ASTERISK330_tree) elif alt116 == 2: # sdl92.g:722:19: ( stimulus ( ',' stimulus )* ) pass # sdl92.g:722:19: ( stimulus ( ',' stimulus )* ) # sdl92.g:722:20: stimulus ( ',' stimulus )* pass self._state.following.append(self.FOLLOW_stimulus_in_inputlist7873) stimulus331 = self.stimulus() self._state.following.pop() if self._state.backtracking == 0: stream_stimulus.add(stimulus331.tree) # sdl92.g:722:29: ( ',' stimulus )* while True: #loop115 alt115 = 2 LA115_0 = self.input.LA(1) if (LA115_0 == COMMA) : alt115 = 1 if alt115 == 1: # sdl92.g:722:30: ',' stimulus pass char_literal332 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_inputlist7876) if self._state.backtracking == 0: stream_COMMA.add(char_literal332) self._state.following.append(self.FOLLOW_stimulus_in_inputlist7878) stimulus333 = self.stimulus() self._state.following.pop() if self._state.backtracking == 0: stream_stimulus.add(stimulus333.tree) else: break #loop115 # AST Rewrite # elements: stimulus # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 723:9: -> ^( INPUTLIST ( stimulus )+ ) # sdl92.g:723:17: ^( INPUTLIST ( stimulus )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(INPUTLIST, "INPUTLIST") , root_1) # sdl92.g:723:29: ( stimulus )+ if not (stream_stimulus.hasNext()): raise RewriteEarlyExitException() while stream_stimulus.hasNext(): self._adaptor.addChild(root_1, stream_stimulus.nextTree()) stream_stimulus.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "inputlist" class stimulus_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "stimulus" # sdl92.g:727:1: stimulus : stimulus_id ( input_params )? ; def stimulus(self, ): retval = self.stimulus_return() retval.start = self.input.LT(1) root_0 = None stimulus_id334 = None input_params335 = None try: try: # sdl92.g:728:9: ( stimulus_id ( input_params )? ) # sdl92.g:728:17: stimulus_id ( input_params )? pass root_0 = self._adaptor.nil() self._state.following.append(self.FOLLOW_stimulus_id_in_stimulus7935) stimulus_id334 = self.stimulus_id() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, stimulus_id334.tree) # sdl92.g:728:29: ( input_params )? alt117 = 2 LA117_0 = self.input.LA(1) if (LA117_0 == L_PAREN) : alt117 = 1 if alt117 == 1: # sdl92.g:728:29: input_params pass self._state.following.append(self.FOLLOW_input_params_in_stimulus7937) input_params335 = self.input_params() self._state.following.pop() if self._state.backtracking == 0: self._adaptor.addChild(root_0, input_params335.tree) retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "stimulus" class input_params_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "input_params" # sdl92.g:732:1: input_params : L_PAREN variable_id ( ',' variable_id )* R_PAREN -> ^( PARAMS ( variable_id )+ ) ; def input_params(self, ): retval = self.input_params_return() retval.start = self.input.LT(1) root_0 = None L_PAREN336 = None char_literal338 = None R_PAREN340 = None variable_id337 = None variable_id339 = None L_PAREN336_tree = None char_literal338_tree = None R_PAREN340_tree = None stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") stream_L_PAREN = RewriteRuleTokenStream(self._adaptor, "token L_PAREN") stream_R_PAREN = RewriteRuleTokenStream(self._adaptor, "token R_PAREN") stream_variable_id = RewriteRuleSubtreeStream(self._adaptor, "rule variable_id") try: try: # sdl92.g:733:9: ( L_PAREN variable_id ( ',' variable_id )* R_PAREN -> ^( PARAMS ( variable_id )+ ) ) # sdl92.g:733:17: L_PAREN variable_id ( ',' variable_id )* R_PAREN pass L_PAREN336 = self.match(self.input, L_PAREN, self.FOLLOW_L_PAREN_in_input_params7970) if self._state.backtracking == 0: stream_L_PAREN.add(L_PAREN336) self._state.following.append(self.FOLLOW_variable_id_in_input_params7972) variable_id337 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id337.tree) # sdl92.g:733:37: ( ',' variable_id )* while True: #loop118 alt118 = 2 LA118_0 = self.input.LA(1) if (LA118_0 == COMMA) : alt118 = 1 if alt118 == 1: # sdl92.g:733:38: ',' variable_id pass char_literal338 = self.match(self.input, COMMA, self.FOLLOW_COMMA_in_input_params7975) if self._state.backtracking == 0: stream_COMMA.add(char_literal338) self._state.following.append(self.FOLLOW_variable_id_in_input_params7977) variable_id339 = self.variable_id() self._state.following.pop() if self._state.backtracking == 0: stream_variable_id.add(variable_id339.tree) else: break #loop118 R_PAREN340 = self.match(self.input, R_PAREN, self.FOLLOW_R_PAREN_in_input_params7981) if self._state.backtracking == 0: stream_R_PAREN.add(R_PAREN340) # AST Rewrite # elements: variable_id # token labels: # rule labels: retval # token list labels: # rule list labels: # wildcard labels: if self._state.backtracking == 0: retval.tree = root_0 if retval is not None: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) else: stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) root_0 = self._adaptor.nil() # 734:9: -> ^( PARAMS ( variable_id )+ ) # sdl92.g:734:17: ^( PARAMS ( variable_id )+ ) root_1 = self._adaptor.nil() root_1 = self._adaptor.becomeRoot( self._adaptor.createFromType(PARAMS, "PARAMS") , root_1) # sdl92.g:734:26: ( variable_id )+ if not (stream_variable_id.hasNext()): raise RewriteEarlyExitException() while stream_variable_id.hasNext(): self._adaptor.addChild(root_1, stream_variable_id.nextTree()) stream_variable_id.reset() self._adaptor.addChild(root_0, root_1) retval.tree = root_0 retval.stop = self.input.LT(-1) if self._state.backtracking == 0: retval.tree = self._adaptor.rulePostProcessing(root_0) self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) except RecognitionException as re: self.reportError(re) self.recover(self.input, re) retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) finally: pass return retval # $ANTLR end "input_params" class transition_return(ParserRuleReturnScope): def __init__(self): super().__init__() self.tree = None # $ANTLR start "transition" # sdl92.g:738:1: transition : ( ( action )+ ( label )? ( terminator_statement )? -> ^( TRANSITION ( action )+ ( label )? ( terminator_statement )? ) | terminator_statement -> ^( TRANSITION terminator_statement ) ); def transition(self, ): retval = self.transition_return() retval.start = self.input.LT(1) root_0 = None action341 = None label342 = None terminator_statement343 = None terminator_statement344 = None stream_terminator_statement = RewriteRuleSubtreeStream(self._adaptor, "rule terminator_statement") stream_action = RewriteRuleSubtreeStream(self._adaptor, "rule action") stream_label = RewriteRuleSubtreeStream(self._adaptor, "rule label") try: try: # sdl92.g:739:9: ( ( action )+ ( label )? ( terminator_statement )? -> ^( TRANSITION ( action )+ ( label )? ( terminator_statement )? ) | terminator_statement -> ^( TRANSITION terminator_statement ) ) alt122 = 2 LA122 = self.input.LA(1) if LA122 in {228}: LA122_1 = self.input.LA(2) if (LA122_1 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA122_5 = self.input.LA(3) if (LA122_5 == L_PAREN) : LA122_8 = self.input.LA(4) if (LA122_8 == DASH) : LA122_11 = self.input.LA(5) if (LA122_11 == INT) : LA122_12 = self.input.LA(6) if (LA122_12 == COMMA) : LA122_15 = self.input.LA(7) if (LA122_15 == DASH) : LA122_18 = self.input.LA(8) if (LA122_18 == INT) : LA122_19 = self.input.LA(9) if (LA122_19 == R_PAREN) : LA122_23 = self.input.LA(10) if (LA122_23 == COMMA) : LA122_26 = self.input.LA(11) if (LA122_26 == L_PAREN) : LA122_29 = self.input.LA(12) if (LA122_29 == INT) : LA122_31 = self.input.LA(13) if (LA122_31 == COMMA) : LA122_33 = self.input.LA(14) if (LA122_33 == INT) : LA122_35 = self.input.LA(15) if (LA122_35 == R_PAREN) : LA122_37 = self.input.LA(16) if (LA122_37 == 225) : LA122 = self.input.LA(17) if LA122 in {ID}: LA122_41 = self.input.LA(18) if (LA122_41 == 229) : LA122 = self.input.LA(19) if LA122 in {228}: LA122_10 = self.input.LA(20) if (LA122_10 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA122_14 = self.input.LA(21) if (LA122_14 == L_PAREN) : LA122_17 = self.input.LA(22) if (LA122_17 == DASH) : LA122_21 = self.input.LA(23) if (LA122_21 == INT) : LA122_22 = self.input.LA(24) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(25) if (LA122_25 == DASH) : LA122_27 = self.input.LA(26) if (LA122_27 == INT) : LA122_28 = self.input.LA(27) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(28) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(29) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(30) if (LA122_34 == INT) : LA122_36 = self.input.LA(31) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(32) if (LA122_38 == INT) : LA122_40 = self.input.LA(33) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(34) if (LA122_43 == 225) : LA122 = self.input.LA(35) if LA122 in {228}: LA122_42 = self.input.LA(36) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(37) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(38) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(39) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(40) if (LA122_16 == STRING) : LA122_20 = self.input.LA(41) if (LA122_20 == 225) : LA122_24 = self.input.LA(42) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 27, self.input) raise nvae elif (LA122_25 == INT) : LA122_28 = self.input.LA(26) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(27) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(28) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(29) if (LA122_34 == INT) : LA122_36 = self.input.LA(30) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(31) if (LA122_38 == INT) : LA122_40 = self.input.LA(32) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(33) if (LA122_43 == 225) : LA122 = self.input.LA(34) if LA122 in {228}: LA122_42 = self.input.LA(35) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(36) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(37) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(38) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(39) if (LA122_16 == STRING) : LA122_20 = self.input.LA(40) if (LA122_20 == 225) : LA122_24 = self.input.LA(41) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 21, self.input) raise nvae elif (LA122_17 == INT) : LA122_22 = self.input.LA(23) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(24) if (LA122_25 == DASH) : LA122_27 = self.input.LA(25) if (LA122_27 == INT) : LA122_28 = self.input.LA(26) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(27) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(28) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(29) if (LA122_34 == INT) : LA122_36 = self.input.LA(30) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(31) if (LA122_38 == INT) : LA122_40 = self.input.LA(32) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(33) if (LA122_43 == 225) : LA122 = self.input.LA(34) if LA122 in {228}: LA122_42 = self.input.LA(35) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(36) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(37) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(38) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(39) if (LA122_16 == STRING) : LA122_20 = self.input.LA(40) if (LA122_20 == 225) : LA122_24 = self.input.LA(41) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 27, self.input) raise nvae elif (LA122_25 == INT) : LA122_28 = self.input.LA(25) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(26) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(27) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(28) if (LA122_34 == INT) : LA122_36 = self.input.LA(29) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(30) if (LA122_38 == INT) : LA122_40 = self.input.LA(31) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(32) if (LA122_43 == 225) : LA122 = self.input.LA(33) if LA122 in {228}: LA122_42 = self.input.LA(34) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(35) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(36) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(37) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(38) if (LA122_16 == STRING) : LA122_20 = self.input.LA(39) if (LA122_20 == 225) : LA122_24 = self.input.LA(40) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 17, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 14, self.input) raise nvae elif (LA122_10 == KEEP) : LA122_6 = self.input.LA(21) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(22) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(23) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(24) if (LA122_16 == STRING) : LA122_20 = self.input.LA(25) if (LA122_20 == 225) : LA122_24 = self.input.LA(26) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 10, self.input) raise nvae elif LA122 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, OUTPUT, RESET, SET, STRING, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 41, self.input) raise nvae elif LA122 in {228}: LA122_42 = self.input.LA(18) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(19) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(20) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(21) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(22) if (LA122_16 == STRING) : LA122_20 = self.input.LA(23) if (LA122_20 == 225) : LA122_24 = self.input.LA(24) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 39, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 37, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 35, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 33, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 31, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 29, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 18, self.input) raise nvae elif (LA122_15 == INT) : LA122_19 = self.input.LA(8) if (LA122_19 == R_PAREN) : LA122_23 = self.input.LA(9) if (LA122_23 == COMMA) : LA122_26 = self.input.LA(10) if (LA122_26 == L_PAREN) : LA122_29 = self.input.LA(11) if (LA122_29 == INT) : LA122_31 = self.input.LA(12) if (LA122_31 == COMMA) : LA122_33 = self.input.LA(13) if (LA122_33 == INT) : LA122_35 = self.input.LA(14) if (LA122_35 == R_PAREN) : LA122_37 = self.input.LA(15) if (LA122_37 == 225) : LA122 = self.input.LA(16) if LA122 in {ID}: LA122_41 = self.input.LA(17) if (LA122_41 == 229) : LA122 = self.input.LA(18) if LA122 in {228}: LA122_10 = self.input.LA(19) if (LA122_10 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA122_14 = self.input.LA(20) if (LA122_14 == L_PAREN) : LA122_17 = self.input.LA(21) if (LA122_17 == DASH) : LA122_21 = self.input.LA(22) if (LA122_21 == INT) : LA122_22 = self.input.LA(23) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(24) if (LA122_25 == DASH) : LA122_27 = self.input.LA(25) if (LA122_27 == INT) : LA122_28 = self.input.LA(26) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(27) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(28) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(29) if (LA122_34 == INT) : LA122_36 = self.input.LA(30) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(31) if (LA122_38 == INT) : LA122_40 = self.input.LA(32) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(33) if (LA122_43 == 225) : LA122 = self.input.LA(34) if LA122 in {228}: LA122_42 = self.input.LA(35) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(36) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(37) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(38) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(39) if (LA122_16 == STRING) : LA122_20 = self.input.LA(40) if (LA122_20 == 225) : LA122_24 = self.input.LA(41) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 27, self.input) raise nvae elif (LA122_25 == INT) : LA122_28 = self.input.LA(25) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(26) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(27) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(28) if (LA122_34 == INT) : LA122_36 = self.input.LA(29) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(30) if (LA122_38 == INT) : LA122_40 = self.input.LA(31) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(32) if (LA122_43 == 225) : LA122 = self.input.LA(33) if LA122 in {228}: LA122_42 = self.input.LA(34) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(35) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(36) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(37) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(38) if (LA122_16 == STRING) : LA122_20 = self.input.LA(39) if (LA122_20 == 225) : LA122_24 = self.input.LA(40) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 21, self.input) raise nvae elif (LA122_17 == INT) : LA122_22 = self.input.LA(22) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(23) if (LA122_25 == DASH) : LA122_27 = self.input.LA(24) if (LA122_27 == INT) : LA122_28 = self.input.LA(25) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(26) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(27) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(28) if (LA122_34 == INT) : LA122_36 = self.input.LA(29) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(30) if (LA122_38 == INT) : LA122_40 = self.input.LA(31) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(32) if (LA122_43 == 225) : LA122 = self.input.LA(33) if LA122 in {228}: LA122_42 = self.input.LA(34) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(35) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(36) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(37) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(38) if (LA122_16 == STRING) : LA122_20 = self.input.LA(39) if (LA122_20 == 225) : LA122_24 = self.input.LA(40) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 27, self.input) raise nvae elif (LA122_25 == INT) : LA122_28 = self.input.LA(24) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(25) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(26) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(27) if (LA122_34 == INT) : LA122_36 = self.input.LA(28) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(29) if (LA122_38 == INT) : LA122_40 = self.input.LA(30) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(31) if (LA122_43 == 225) : LA122 = self.input.LA(32) if LA122 in {228}: LA122_42 = self.input.LA(33) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(34) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(35) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(36) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(37) if (LA122_16 == STRING) : LA122_20 = self.input.LA(38) if (LA122_20 == 225) : LA122_24 = self.input.LA(39) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 17, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 14, self.input) raise nvae elif (LA122_10 == KEEP) : LA122_6 = self.input.LA(20) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(21) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(22) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(23) if (LA122_16 == STRING) : LA122_20 = self.input.LA(24) if (LA122_20 == 225) : LA122_24 = self.input.LA(25) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 10, self.input) raise nvae elif LA122 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, OUTPUT, RESET, SET, STRING, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 41, self.input) raise nvae elif LA122 in {228}: LA122_42 = self.input.LA(17) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(18) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(19) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(20) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(21) if (LA122_16 == STRING) : LA122_20 = self.input.LA(22) if (LA122_20 == 225) : LA122_24 = self.input.LA(23) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 39, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 37, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 35, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 33, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 31, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 29, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 15, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 12, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 11, self.input) raise nvae elif (LA122_8 == INT) : LA122_12 = self.input.LA(5) if (LA122_12 == COMMA) : LA122_15 = self.input.LA(6) if (LA122_15 == DASH) : LA122_18 = self.input.LA(7) if (LA122_18 == INT) : LA122_19 = self.input.LA(8) if (LA122_19 == R_PAREN) : LA122_23 = self.input.LA(9) if (LA122_23 == COMMA) : LA122_26 = self.input.LA(10) if (LA122_26 == L_PAREN) : LA122_29 = self.input.LA(11) if (LA122_29 == INT) : LA122_31 = self.input.LA(12) if (LA122_31 == COMMA) : LA122_33 = self.input.LA(13) if (LA122_33 == INT) : LA122_35 = self.input.LA(14) if (LA122_35 == R_PAREN) : LA122_37 = self.input.LA(15) if (LA122_37 == 225) : LA122 = self.input.LA(16) if LA122 in {ID}: LA122_41 = self.input.LA(17) if (LA122_41 == 229) : LA122 = self.input.LA(18) if LA122 in {228}: LA122_10 = self.input.LA(19) if (LA122_10 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA122_14 = self.input.LA(20) if (LA122_14 == L_PAREN) : LA122_17 = self.input.LA(21) if (LA122_17 == DASH) : LA122_21 = self.input.LA(22) if (LA122_21 == INT) : LA122_22 = self.input.LA(23) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(24) if (LA122_25 == DASH) : LA122_27 = self.input.LA(25) if (LA122_27 == INT) : LA122_28 = self.input.LA(26) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(27) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(28) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(29) if (LA122_34 == INT) : LA122_36 = self.input.LA(30) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(31) if (LA122_38 == INT) : LA122_40 = self.input.LA(32) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(33) if (LA122_43 == 225) : LA122 = self.input.LA(34) if LA122 in {228}: LA122_42 = self.input.LA(35) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(36) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(37) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(38) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(39) if (LA122_16 == STRING) : LA122_20 = self.input.LA(40) if (LA122_20 == 225) : LA122_24 = self.input.LA(41) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 27, self.input) raise nvae elif (LA122_25 == INT) : LA122_28 = self.input.LA(25) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(26) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(27) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(28) if (LA122_34 == INT) : LA122_36 = self.input.LA(29) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(30) if (LA122_38 == INT) : LA122_40 = self.input.LA(31) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(32) if (LA122_43 == 225) : LA122 = self.input.LA(33) if LA122 in {228}: LA122_42 = self.input.LA(34) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(35) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(36) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(37) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(38) if (LA122_16 == STRING) : LA122_20 = self.input.LA(39) if (LA122_20 == 225) : LA122_24 = self.input.LA(40) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 21, self.input) raise nvae elif (LA122_17 == INT) : LA122_22 = self.input.LA(22) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(23) if (LA122_25 == DASH) : LA122_27 = self.input.LA(24) if (LA122_27 == INT) : LA122_28 = self.input.LA(25) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(26) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(27) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(28) if (LA122_34 == INT) : LA122_36 = self.input.LA(29) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(30) if (LA122_38 == INT) : LA122_40 = self.input.LA(31) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(32) if (LA122_43 == 225) : LA122 = self.input.LA(33) if LA122 in {228}: LA122_42 = self.input.LA(34) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(35) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(36) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(37) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(38) if (LA122_16 == STRING) : LA122_20 = self.input.LA(39) if (LA122_20 == 225) : LA122_24 = self.input.LA(40) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 27, self.input) raise nvae elif (LA122_25 == INT) : LA122_28 = self.input.LA(24) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(25) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(26) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(27) if (LA122_34 == INT) : LA122_36 = self.input.LA(28) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(29) if (LA122_38 == INT) : LA122_40 = self.input.LA(30) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(31) if (LA122_43 == 225) : LA122 = self.input.LA(32) if LA122 in {228}: LA122_42 = self.input.LA(33) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(34) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(35) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(36) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(37) if (LA122_16 == STRING) : LA122_20 = self.input.LA(38) if (LA122_20 == 225) : LA122_24 = self.input.LA(39) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 44, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 43, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 40, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 38, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 36, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 34, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 32, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 30, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 28, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 25, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 22, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 17, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 14, self.input) raise nvae elif (LA122_10 == KEEP) : LA122_6 = self.input.LA(20) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(21) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(22) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(23) if (LA122_16 == STRING) : LA122_20 = self.input.LA(24) if (LA122_20 == 225) : LA122_24 = self.input.LA(25) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 10, self.input) raise nvae elif LA122 in {ALTERNATIVE, CALL, CREATE, DECISION, EXPORT, FOR, ID, OUTPUT, RESET, SET, STRING, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 7, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 41, self.input) raise nvae elif LA122 in {228}: LA122_42 = self.input.LA(17) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(18) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(19) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(20) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(21) if (LA122_16 == STRING) : LA122_20 = self.input.LA(22) if (LA122_20 == 225) : LA122_24 = self.input.LA(23) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 42, self.input) raise nvae elif LA122 in {CALL, DECISION, OUTPUT, TASK}: alt122 = 1 elif LA122 in {JOIN, NEXTSTATE, RETURN, STOP}: alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 39, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 37, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 35, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 33, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 31, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 29, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 26, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 23, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 19, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 18, self.input) raise nvae elif (LA122_15 == INT) : LA122_19 = self.input.LA(7) if (LA122_19 == R_PAREN) : LA122_23 = self.input.LA(8) if (LA122_23 == COMMA) : LA122_26 = self.input.LA(9) if (LA122_26 == L_PAREN) : LA122_29 = self.input.LA(10) if (LA122_29 == INT) : LA122_31 = self.input.LA(11) if (LA122_31 == COMMA) : LA122_33 = self.input.LA(12) if (LA122_33 == INT) : LA122_35 = self.input.LA(13) if (LA122_35 == R_PAREN) : LA122_37 = self.input.LA(14) if (LA122_37 == 225) : LA122 = self.input.LA(15) if LA122 in {ID}: LA122_41 = self.input.LA(16) if (LA122_41 == 229) : LA122 = self.input.LA(17) if LA122 in {228}: LA122_10 = self.input.LA(18) if (LA122_10 in {ANSWER, COMMENT, CONNECT, DECISION, INPUT, JOIN, LABEL, NEXTSTATE, OUTPUT, PROCEDURE, PROCEDURE_CALL, PROCESS, PROVIDED, RETURN, START, STATE, STOP, TASK, TEXT}) : LA122_14 = self.input.LA(19) if (LA122_14 == L_PAREN) : LA122_17 = self.input.LA(20) if (LA122_17 == DASH) : LA122_21 = self.input.LA(21) if (LA122_21 == INT) : LA122_22 = self.input.LA(22) if (LA122_22 == COMMA) : LA122_25 = self.input.LA(23) if (LA122_25 == DASH) : LA122_27 = self.input.LA(24) if (LA122_27 == INT) : LA122_28 = self.input.LA(25) if (LA122_28 == R_PAREN) : LA122_30 = self.input.LA(26) if (LA122_30 == COMMA) : LA122_32 = self.input.LA(27) if (LA122_32 == L_PAREN) : LA122_34 = self.input.LA(28) if (LA122_34 == INT) : LA122_36 = self.input.LA(29) if (LA122_36 == COMMA) : LA122_38 = self.input.LA(30) if (LA122_38 == INT) : LA122_40 = self.input.LA(31) if (LA122_40 == R_PAREN) : LA122_43 = self.input.LA(32) if (LA122_43 == 225) : LA122 = self.input.LA(33) if LA122 in {228}: LA122_42 = self.input.LA(34) if (LA122_42 == KEEP) : LA122_6 = self.input.LA(35) if (LA122_6 == SPECIFIC) : LA122_9 = self.input.LA(36) if (LA122_9 == GEODE) : LA122_13 = self.input.LA(37) if (LA122_13 == HYPERLINK) : LA122_16 = self.input.LA(38) if (LA122_16 == STRING) : LA122_20 = self.input.LA(39) if (LA122_20 == 225) : LA122_24 = self.input.LA(40) if (LA122_24 in {CALL, DECISION, OUTPUT, TASK}) : alt122 = 1 elif (LA122_24 in {JOIN, NEXTSTATE, RETURN, STOP}) : alt122 = 2 else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 24, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 20, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 16, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 13, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 9, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed nvae = NoViableAltException("", 122, 6, self.input) raise nvae else: if self._state.backtracking > 0: raise BacktrackingFailed