X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FEot%2FCParser.py;h=0b74b53ae7a5eafeaee8d78c3a3783f5dfcee703;hb=c60377d7f9ec80ecc7fe76c38b81ffd98b7ef2e4;hp=77c0d9e336b4fa51db43d19457a41058098336ce;hpb=22c4de1ac8f1fc72e8d72af6a315e584490a44b0;p=mirror_edk2.git diff --git a/BaseTools/Source/Python/Eot/CParser.py b/BaseTools/Source/Python/Eot/CParser.py index 77c0d9e336..0b74b53ae7 100644 --- a/BaseTools/Source/Python/Eot/CParser.py +++ b/BaseTools/Source/Python/Eot/CParser.py @@ -1,10 +1,9 @@ -# Generated from C.g4 by ANTLR 4.7.1 -# encoding: utf-8 -from antlr4 import * -from io import StringIO -from typing.io import TextIO -import sys +# $ANTLR 3.0.1 C.g 2010-02-23 09:58:53 +from __future__ import print_function +from __future__ import absolute_import +from antlr3 import * +from antlr3.compat import set, frozenset ## @file # The file defines the parser for C source files. @@ -13,7 +12,7 @@ import sys # This file is generated by running: # java org.antlr.Tool C.g # -# Copyright (c) 2009 - 2010, Intel Corporation All rights reserved. +# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
# # This program and the accompanying materials are licensed and made available # under the terms and conditions of the BSD License which accompanies this @@ -25,5925 +24,18816 @@ import sys # ## -import Ecc.CodeFragment as CodeFragment -import Ecc.FileProfile as FileProfile - -def serializedATN(): - with StringIO() as buf: - buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3k") - buf.write("\u0380\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") - buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") - buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") - buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") - buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36") - buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t") - buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4") - buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64") - buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t") - buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t") - buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\3\2\7\2\u0092\n\2\f\2\16\2\u0095") - buf.write("\13\2\3\3\5\3\u0098\n\3\3\3\3\3\7\3\u009c\n\3\f\3\16\3") - buf.write("\u009f\13\3\3\3\3\3\3\3\3\3\3\3\3\3\5\3\u00a7\n\3\5\3") - buf.write("\u00a9\n\3\3\4\5\4\u00ac\n\4\3\4\3\4\6\4\u00b0\n\4\r\4") - buf.write("\16\4\u00b1\3\4\3\4\3\4\5\4\u00b7\n\4\3\4\3\4\3\5\3\5") - buf.write("\3\5\6\5\u00be\n\5\r\5\16\5\u00bf\3\6\3\6\5\6\u00c4\n") - buf.write("\6\3\6\3\6\3\6\3\6\3\6\3\6\5\6\u00cc\n\6\3\6\3\6\3\6\5") - buf.write("\6\u00d1\n\6\3\7\3\7\3\7\7\7\u00d6\n\7\f\7\16\7\u00d9") - buf.write("\13\7\3\b\3\b\3\b\5\b\u00de\n\b\3\t\3\t\3\n\3\n\3\n\3") - buf.write("\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n") - buf.write("\7\n\u00f3\n\n\f\n\16\n\u00f6\13\n\3\n\3\n\5\n\u00fa\n") - buf.write("\n\3\13\3\13\3\f\3\f\5\f\u0100\n\f\3\f\3\f\3\f\3\f\3\f") - buf.write("\3\f\3\f\5\f\u0109\n\f\3\r\3\r\3\16\6\16\u010e\n\16\r") - buf.write("\16\16\16\u010f\3\17\3\17\3\17\3\17\3\20\3\20\6\20\u0118") - buf.write("\n\20\r\20\16\20\u0119\3\21\3\21\3\21\7\21\u011f\n\21") - buf.write("\f\21\16\21\u0122\13\21\3\22\3\22\3\22\5\22\u0127\n\22") - buf.write("\3\22\3\22\5\22\u012b\n\22\3\23\3\23\3\23\3\23\5\23\u0131") - buf.write("\n\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\5\23\u013a\n") - buf.write("\23\3\23\3\23\3\23\3\23\5\23\u0140\n\23\3\24\3\24\3\24") - buf.write("\7\24\u0145\n\24\f\24\16\24\u0148\13\24\3\25\3\25\3\25") - buf.write("\5\25\u014d\n\25\3\26\3\26\3\27\5\27\u0152\n\27\3\27\5") - buf.write("\27\u0155\n\27\3\27\5\27\u0158\n\27\3\27\5\27\u015b\n") - buf.write("\27\3\27\3\27\5\27\u015f\n\27\3\30\3\30\7\30\u0163\n\30") - buf.write("\f\30\16\30\u0166\13\30\3\30\3\30\5\30\u016a\n\30\3\30") - buf.write("\3\30\3\30\6\30\u016f\n\30\r\30\16\30\u0170\5\30\u0173") - buf.write("\n\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31") - buf.write("\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0185\n\31\3\32\3") - buf.write("\32\6\32\u0189\n\32\r\32\16\32\u018a\3\32\5\32\u018e\n") - buf.write("\32\3\32\3\32\3\32\5\32\u0193\n\32\3\33\3\33\3\33\5\33") - buf.write("\u0198\n\33\3\33\5\33\u019b\n\33\3\34\3\34\3\34\5\34\u01a0") - buf.write("\n\34\3\34\7\34\u01a3\n\34\f\34\16\34\u01a6\13\34\3\35") - buf.write("\3\35\3\35\7\35\u01ab\n\35\f\35\16\35\u01ae\13\35\3\35") - buf.write("\5\35\u01b1\n\35\3\35\7\35\u01b4\n\35\f\35\16\35\u01b7") - buf.write("\13\35\3\35\5\35\u01ba\n\35\3\36\3\36\3\36\7\36\u01bf") - buf.write("\n\36\f\36\16\36\u01c2\13\36\3\37\3\37\5\37\u01c6\n\37") - buf.write("\3\37\5\37\u01c9\n\37\3 \3 \5 \u01cd\n \3 \5 \u01d0\n") - buf.write(" \3!\3!\3!\3!\3!\5!\u01d7\n!\3!\7!\u01da\n!\f!\16!\u01dd") - buf.write("\13!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\5") - buf.write("\"\u01eb\n\"\3#\3#\3#\3#\5#\u01f1\n#\3#\3#\5#\u01f5\n") - buf.write("#\3$\3$\3$\7$\u01fa\n$\f$\16$\u01fd\13$\3%\3%\5%\u0201") - buf.write("\n%\3%\3%\3%\5%\u0206\n%\7%\u0208\n%\f%\16%\u020b\13%") - buf.write("\3&\3&\3&\3&\3&\7&\u0212\n&\f&\16&\u0215\13&\3\'\3\'\3") - buf.write("\'\3\'\3\'\3\'\3\'\7\'\u021e\n\'\f\'\16\'\u0221\13\'\3") - buf.write("(\3(\3(\3(\3(\3(\5(\u0229\n(\3)\3)\3)\3)\3)\3)\3)\3)\3") - buf.write(")\3)\3)\3)\3)\3)\3)\5)\u023a\n)\3*\3*\3*\3*\3*\3*\3*\3") - buf.write("*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3") - buf.write("*\3*\3*\3*\7*\u0259\n*\f*\16*\u025c\13*\3+\3+\3+\7+\u0261") - buf.write("\n+\f+\16+\u0264\13+\3,\3,\3-\3-\3-\3-\3-\3-\5-\u026e") - buf.write("\n-\3.\3.\3.\3.\3.\7.\u0275\n.\f.\16.\u0278\13.\3.\6.") - buf.write("\u027b\n.\r.\16.\u027c\6.\u027f\n.\r.\16.\u0280\3.\7.") - buf.write("\u0284\n.\f.\16.\u0287\13.\3.\5.\u028a\n.\3/\3/\3/\7/") - buf.write("\u028f\n/\f/\16/\u0292\13/\3\60\3\60\3\61\3\61\3\61\3") - buf.write("\61\3\61\5\61\u029b\n\61\3\62\3\62\3\63\3\63\3\64\3\64") - buf.write("\3\64\3\64\3\64\3\64\3\64\5\64\u02a8\n\64\3\65\3\65\3") - buf.write("\65\7\65\u02ad\n\65\f\65\16\65\u02b0\13\65\3\66\3\66\3") - buf.write("\66\7\66\u02b5\n\66\f\66\16\66\u02b8\13\66\3\67\3\67\3") - buf.write("\67\7\67\u02bd\n\67\f\67\16\67\u02c0\13\67\38\38\38\7") - buf.write("8\u02c5\n8\f8\168\u02c8\138\39\39\39\79\u02cd\n9\f9\16") - buf.write("9\u02d0\139\3:\3:\3:\7:\u02d5\n:\f:\16:\u02d8\13:\3;\3") - buf.write(";\3;\7;\u02dd\n;\f;\16;\u02e0\13;\3<\3<\3<\7<\u02e5\n") - buf.write("<\f<\16<\u02e8\13<\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\5") - buf.write("=\u02f5\n=\3>\5>\u02f8\n>\3>\3>\3>\7>\u02fd\n>\f>\16>") - buf.write("\u0300\13>\3>\3>\3>\3?\3?\3?\7?\u0308\n?\f?\16?\u030b") - buf.write("\13?\3?\3?\3@\3@\3@\7@\u0312\n@\f@\16@\u0315\13@\3@\3") - buf.write("@\3A\3A\3A\7A\u031c\nA\fA\16A\u031f\13A\3A\5A\u0322\n") - buf.write("A\3A\5A\u0325\nA\3A\3A\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3") - buf.write("B\5B\u0334\nB\3C\3C\7C\u0338\nC\fC\16C\u033b\13C\3C\5") - buf.write("C\u033e\nC\3C\3C\3D\6D\u0343\nD\rD\16D\u0344\3E\3E\3E") - buf.write("\3E\5E\u034b\nE\3F\3F\3F\3F\3F\3F\3F\3F\5F\u0355\nF\3") - buf.write("F\3F\3F\3F\3F\3F\5F\u035d\nF\3G\3G\3G\3G\3G\3G\3G\3G\3") - buf.write("G\3G\3G\3G\3G\3G\3G\3G\5G\u036f\nG\3H\3H\3H\3H\3H\3H\3") - buf.write("H\3H\3H\3H\3H\3H\3H\5H\u037e\nH\3H\2\2I\2\4\6\b\n\f\16") - buf.write("\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDF") - buf.write("HJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086") - buf.write("\u0088\u008a\u008c\u008e\2\f\3\2\b\f\3\2\27\30\3\2\33") - buf.write("\'\5\2,,./\679\4\2\7\7:C\3\2IJ\3\2KN\3\2OP\3\2\4\4\3\2") - buf.write("\26\26\2\u03d8\2\u0093\3\2\2\2\4\u00a8\3\2\2\2\6\u00ab") - buf.write("\3\2\2\2\b\u00bd\3\2\2\2\n\u00d0\3\2\2\2\f\u00d2\3\2\2") - buf.write("\2\16\u00da\3\2\2\2\20\u00df\3\2\2\2\22\u00f9\3\2\2\2") - buf.write("\24\u00fb\3\2\2\2\26\u0108\3\2\2\2\30\u010a\3\2\2\2\32") - buf.write("\u010d\3\2\2\2\34\u0111\3\2\2\2\36\u0117\3\2\2\2 \u011b") - buf.write("\3\2\2\2\"\u012a\3\2\2\2$\u013f\3\2\2\2&\u0141\3\2\2\2") - buf.write("(\u0149\3\2\2\2*\u014e\3\2\2\2,\u015e\3\2\2\2.\u0172\3") - buf.write("\2\2\2\60\u0184\3\2\2\2\62\u0192\3\2\2\2\64\u0194\3\2") - buf.write("\2\2\66\u019c\3\2\2\28\u01b9\3\2\2\2:\u01bb\3\2\2\2<\u01c8") - buf.write("\3\2\2\2>\u01cf\3\2\2\2@\u01d6\3\2\2\2B\u01ea\3\2\2\2") - buf.write("D\u01f4\3\2\2\2F\u01f6\3\2\2\2H\u01fe\3\2\2\2J\u020c\3") - buf.write("\2\2\2L\u0216\3\2\2\2N\u0228\3\2\2\2P\u0239\3\2\2\2R\u023b") - buf.write("\3\2\2\2T\u025d\3\2\2\2V\u0265\3\2\2\2X\u026d\3\2\2\2") - buf.write("Z\u0289\3\2\2\2\\\u028b\3\2\2\2^\u0293\3\2\2\2`\u029a") - buf.write("\3\2\2\2b\u029c\3\2\2\2d\u029e\3\2\2\2f\u02a0\3\2\2\2") - buf.write("h\u02a9\3\2\2\2j\u02b1\3\2\2\2l\u02b9\3\2\2\2n\u02c1\3") - buf.write("\2\2\2p\u02c9\3\2\2\2r\u02d1\3\2\2\2t\u02d9\3\2\2\2v\u02e1") - buf.write("\3\2\2\2x\u02f4\3\2\2\2z\u02f7\3\2\2\2|\u0304\3\2\2\2") - buf.write("~\u030e\3\2\2\2\u0080\u0318\3\2\2\2\u0082\u0333\3\2\2") - buf.write("\2\u0084\u0335\3\2\2\2\u0086\u0342\3\2\2\2\u0088\u034a") - buf.write("\3\2\2\2\u008a\u035c\3\2\2\2\u008c\u036e\3\2\2\2\u008e") - buf.write("\u037d\3\2\2\2\u0090\u0092\5\4\3\2\u0091\u0090\3\2\2\2") - buf.write("\u0092\u0095\3\2\2\2\u0093\u0091\3\2\2\2\u0093\u0094\3") - buf.write("\2\2\2\u0094\3\3\2\2\2\u0095\u0093\3\2\2\2\u0096\u0098") - buf.write("\5\b\5\2\u0097\u0096\3\2\2\2\u0097\u0098\3\2\2\2\u0098") - buf.write("\u0099\3\2\2\2\u0099\u009d\5,\27\2\u009a\u009c\5\n\6\2") - buf.write("\u009b\u009a\3\2\2\2\u009c\u009f\3\2\2\2\u009d\u009b\3") - buf.write("\2\2\2\u009d\u009e\3\2\2\2\u009e\u00a0\3\2\2\2\u009f\u009d") - buf.write("\3\2\2\2\u00a0\u00a1\7\3\2\2\u00a1\u00a9\3\2\2\2\u00a2") - buf.write("\u00a9\5\6\4\2\u00a3\u00a9\5\n\6\2\u00a4\u00a6\5\u0080") - buf.write("A\2\u00a5\u00a7\7\4\2\2\u00a6\u00a5\3\2\2\2\u00a6\u00a7") - buf.write("\3\2\2\2\u00a7\u00a9\3\2\2\2\u00a8\u0097\3\2\2\2\u00a8") - buf.write("\u00a2\3\2\2\2\u00a8\u00a3\3\2\2\2\u00a8\u00a4\3\2\2\2") - buf.write("\u00a9\5\3\2\2\2\u00aa\u00ac\5\b\5\2\u00ab\u00aa\3\2\2") - buf.write("\2\u00ab\u00ac\3\2\2\2\u00ac\u00ad\3\2\2\2\u00ad\u00b6") - buf.write("\5,\27\2\u00ae\u00b0\5\n\6\2\u00af\u00ae\3\2\2\2\u00b0") - buf.write("\u00b1\3\2\2\2\u00b1\u00af\3\2\2\2\u00b1\u00b2\3\2\2\2") - buf.write("\u00b2\u00b3\3\2\2\2\u00b3\u00b4\5\u0084C\2\u00b4\u00b7") - buf.write("\3\2\2\2\u00b5\u00b7\5\u0084C\2\u00b6\u00af\3\2\2\2\u00b6") - buf.write("\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00b9\b\4\1\2") - buf.write("\u00b9\7\3\2\2\2\u00ba\u00be\5\20\t\2\u00bb\u00be\5\22") - buf.write("\n\2\u00bc\u00be\5*\26\2\u00bd\u00ba\3\2\2\2\u00bd\u00bb") - buf.write("\3\2\2\2\u00bd\u00bc\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf") - buf.write("\u00bd\3\2\2\2\u00bf\u00c0\3\2\2\2\u00c0\t\3\2\2\2\u00c1") - buf.write("\u00c3\7\5\2\2\u00c2\u00c4\5\b\5\2\u00c3\u00c2\3\2\2\2") - buf.write("\u00c3\u00c4\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c6\5") - buf.write("\f\7\2\u00c6\u00c7\7\4\2\2\u00c7\u00c8\b\6\1\2\u00c8\u00d1") - buf.write("\3\2\2\2\u00c9\u00cb\5\b\5\2\u00ca\u00cc\5\f\7\2\u00cb") - buf.write("\u00ca\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc\u00cd\3\2\2\2") - buf.write("\u00cd\u00ce\7\4\2\2\u00ce\u00cf\b\6\1\2\u00cf\u00d1\3") - buf.write("\2\2\2\u00d0\u00c1\3\2\2\2\u00d0\u00c9\3\2\2\2\u00d1\13") - buf.write("\3\2\2\2\u00d2\u00d7\5\16\b\2\u00d3\u00d4\7\6\2\2\u00d4") - buf.write("\u00d6\5\16\b\2\u00d5\u00d3\3\2\2\2\u00d6\u00d9\3\2\2") - buf.write("\2\u00d7\u00d5\3\2\2\2\u00d7\u00d8\3\2\2\2\u00d8\r\3\2") - buf.write("\2\2\u00d9\u00d7\3\2\2\2\u00da\u00dd\5,\27\2\u00db\u00dc") - buf.write("\7\7\2\2\u00dc\u00de\5D#\2\u00dd\u00db\3\2\2\2\u00dd\u00de") - buf.write("\3\2\2\2\u00de\17\3\2\2\2\u00df\u00e0\t\2\2\2\u00e0\21") - buf.write("\3\2\2\2\u00e1\u00fa\7\r\2\2\u00e2\u00fa\7\16\2\2\u00e3") - buf.write("\u00fa\7\17\2\2\u00e4\u00fa\7\20\2\2\u00e5\u00fa\7\21") - buf.write("\2\2\u00e6\u00fa\7\22\2\2\u00e7\u00fa\7\23\2\2\u00e8\u00fa") - buf.write("\7\24\2\2\u00e9\u00fa\7\25\2\2\u00ea\u00eb\5\26\f\2\u00eb") - buf.write("\u00ec\b\n\1\2\u00ec\u00fa\3\2\2\2\u00ed\u00ee\5$\23\2") - buf.write("\u00ee\u00ef\b\n\1\2\u00ef\u00fa\3\2\2\2\u00f0\u00f4\7") - buf.write("_\2\2\u00f1\u00f3\5*\26\2\u00f2\u00f1\3\2\2\2\u00f3\u00f6") - buf.write("\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f4\u00f5\3\2\2\2\u00f5") - buf.write("\u00f7\3\2\2\2\u00f6\u00f4\3\2\2\2\u00f7\u00fa\5,\27\2") - buf.write("\u00f8\u00fa\5\24\13\2\u00f9\u00e1\3\2\2\2\u00f9\u00e2") - buf.write("\3\2\2\2\u00f9\u00e3\3\2\2\2\u00f9\u00e4\3\2\2\2\u00f9") - buf.write("\u00e5\3\2\2\2\u00f9\u00e6\3\2\2\2\u00f9\u00e7\3\2\2\2") - buf.write("\u00f9\u00e8\3\2\2\2\u00f9\u00e9\3\2\2\2\u00f9\u00ea\3") - buf.write("\2\2\2\u00f9\u00ed\3\2\2\2\u00f9\u00f0\3\2\2\2\u00f9\u00f8") - buf.write("\3\2\2\2\u00fa\23\3\2\2\2\u00fb\u00fc\7_\2\2\u00fc\25") - buf.write("\3\2\2\2\u00fd\u00ff\5\30\r\2\u00fe\u0100\7_\2\2\u00ff") - buf.write("\u00fe\3\2\2\2\u00ff\u0100\3\2\2\2\u0100\u0101\3\2\2\2") - buf.write("\u0101\u0102\7\3\2\2\u0102\u0103\5\32\16\2\u0103\u0104") - buf.write("\7\26\2\2\u0104\u0109\3\2\2\2\u0105\u0106\5\30\r\2\u0106") - buf.write("\u0107\7_\2\2\u0107\u0109\3\2\2\2\u0108\u00fd\3\2\2\2") - buf.write("\u0108\u0105\3\2\2\2\u0109\27\3\2\2\2\u010a\u010b\t\3") - buf.write("\2\2\u010b\31\3\2\2\2\u010c\u010e\5\34\17\2\u010d\u010c") - buf.write("\3\2\2\2\u010e\u010f\3\2\2\2\u010f\u010d\3\2\2\2\u010f") - buf.write("\u0110\3\2\2\2\u0110\33\3\2\2\2\u0111\u0112\5\36\20\2") - buf.write("\u0112\u0113\5 \21\2\u0113\u0114\7\4\2\2\u0114\35\3\2") - buf.write("\2\2\u0115\u0118\5*\26\2\u0116\u0118\5\22\n\2\u0117\u0115") - buf.write("\3\2\2\2\u0117\u0116\3\2\2\2\u0118\u0119\3\2\2\2\u0119") - buf.write("\u0117\3\2\2\2\u0119\u011a\3\2\2\2\u011a\37\3\2\2\2\u011b") - buf.write("\u0120\5\"\22\2\u011c\u011d\7\6\2\2\u011d\u011f\5\"\22") - buf.write("\2\u011e\u011c\3\2\2\2\u011f\u0122\3\2\2\2\u0120\u011e") - buf.write("\3\2\2\2\u0120\u0121\3\2\2\2\u0121!\3\2\2\2\u0122\u0120") - buf.write("\3\2\2\2\u0123\u0126\5,\27\2\u0124\u0125\7\31\2\2\u0125") - buf.write("\u0127\5^\60\2\u0126\u0124\3\2\2\2\u0126\u0127\3\2\2\2") - buf.write("\u0127\u012b\3\2\2\2\u0128\u0129\7\31\2\2\u0129\u012b") - buf.write("\5^\60\2\u012a\u0123\3\2\2\2\u012a\u0128\3\2\2\2\u012b") - buf.write("#\3\2\2\2\u012c\u012d\7\32\2\2\u012d\u012e\7\3\2\2\u012e") - buf.write("\u0130\5&\24\2\u012f\u0131\7\6\2\2\u0130\u012f\3\2\2\2") - buf.write("\u0130\u0131\3\2\2\2\u0131\u0132\3\2\2\2\u0132\u0133\7") - buf.write("\26\2\2\u0133\u0140\3\2\2\2\u0134\u0135\7\32\2\2\u0135") - buf.write("\u0136\7_\2\2\u0136\u0137\7\3\2\2\u0137\u0139\5&\24\2") - buf.write("\u0138\u013a\7\6\2\2\u0139\u0138\3\2\2\2\u0139\u013a\3") - buf.write("\2\2\2\u013a\u013b\3\2\2\2\u013b\u013c\7\26\2\2\u013c") - buf.write("\u0140\3\2\2\2\u013d\u013e\7\32\2\2\u013e\u0140\7_\2\2") - buf.write("\u013f\u012c\3\2\2\2\u013f\u0134\3\2\2\2\u013f\u013d\3") - buf.write("\2\2\2\u0140%\3\2\2\2\u0141\u0146\5(\25\2\u0142\u0143") - buf.write("\7\6\2\2\u0143\u0145\5(\25\2\u0144\u0142\3\2\2\2\u0145") - buf.write("\u0148\3\2\2\2\u0146\u0144\3\2\2\2\u0146\u0147\3\2\2\2") - buf.write("\u0147\'\3\2\2\2\u0148\u0146\3\2\2\2\u0149\u014c\7_\2") - buf.write("\2\u014a\u014b\7\7\2\2\u014b\u014d\5^\60\2\u014c\u014a") - buf.write("\3\2\2\2\u014c\u014d\3\2\2\2\u014d)\3\2\2\2\u014e\u014f") - buf.write("\t\4\2\2\u014f+\3\2\2\2\u0150\u0152\5\62\32\2\u0151\u0150") - buf.write("\3\2\2\2\u0151\u0152\3\2\2\2\u0152\u0154\3\2\2\2\u0153") - buf.write("\u0155\7$\2\2\u0154\u0153\3\2\2\2\u0154\u0155\3\2\2\2") - buf.write("\u0155\u0157\3\2\2\2\u0156\u0158\7%\2\2\u0157\u0156\3") - buf.write("\2\2\2\u0157\u0158\3\2\2\2\u0158\u015a\3\2\2\2\u0159\u015b") - buf.write("\7&\2\2\u015a\u0159\3\2\2\2\u015a\u015b\3\2\2\2\u015b") - buf.write("\u015c\3\2\2\2\u015c\u015f\5.\30\2\u015d\u015f\5\62\32") - buf.write("\2\u015e\u0151\3\2\2\2\u015e\u015d\3\2\2\2\u015f-\3\2") - buf.write("\2\2\u0160\u0164\7_\2\2\u0161\u0163\5\60\31\2\u0162\u0161") - buf.write("\3\2\2\2\u0163\u0166\3\2\2\2\u0164\u0162\3\2\2\2\u0164") - buf.write("\u0165\3\2\2\2\u0165\u0173\3\2\2\2\u0166\u0164\3\2\2\2") - buf.write("\u0167\u0169\7(\2\2\u0168\u016a\7$\2\2\u0169\u0168\3\2") - buf.write("\2\2\u0169\u016a\3\2\2\2\u016a\u016b\3\2\2\2\u016b\u016c") - buf.write("\5,\27\2\u016c\u016e\7)\2\2\u016d\u016f\5\60\31\2\u016e") - buf.write("\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170\u016e\3\2\2\2") - buf.write("\u0170\u0171\3\2\2\2\u0171\u0173\3\2\2\2\u0172\u0160\3") - buf.write("\2\2\2\u0172\u0167\3\2\2\2\u0173/\3\2\2\2\u0174\u0175") - buf.write("\7*\2\2\u0175\u0176\5^\60\2\u0176\u0177\7+\2\2\u0177\u0185") - buf.write("\3\2\2\2\u0178\u0179\7*\2\2\u0179\u0185\7+\2\2\u017a\u017b") - buf.write("\7(\2\2\u017b\u017c\5\64\33\2\u017c\u017d\7)\2\2\u017d") - buf.write("\u0185\3\2\2\2\u017e\u017f\7(\2\2\u017f\u0180\5:\36\2") - buf.write("\u0180\u0181\7)\2\2\u0181\u0185\3\2\2\2\u0182\u0183\7") - buf.write("(\2\2\u0183\u0185\7)\2\2\u0184\u0174\3\2\2\2\u0184\u0178") - buf.write("\3\2\2\2\u0184\u017a\3\2\2\2\u0184\u017e\3\2\2\2\u0184") - buf.write("\u0182\3\2\2\2\u0185\61\3\2\2\2\u0186\u0188\7,\2\2\u0187") - buf.write("\u0189\5*\26\2\u0188\u0187\3\2\2\2\u0189\u018a\3\2\2\2") - buf.write("\u018a\u0188\3\2\2\2\u018a\u018b\3\2\2\2\u018b\u018d\3") - buf.write("\2\2\2\u018c\u018e\5\62\32\2\u018d\u018c\3\2\2\2\u018d") - buf.write("\u018e\3\2\2\2\u018e\u0193\3\2\2\2\u018f\u0190\7,\2\2") - buf.write("\u0190\u0193\5\62\32\2\u0191\u0193\7,\2\2\u0192\u0186") - buf.write("\3\2\2\2\u0192\u018f\3\2\2\2\u0192\u0191\3\2\2\2\u0193") - buf.write("\63\3\2\2\2\u0194\u019a\5\66\34\2\u0195\u0197\7\6\2\2") - buf.write("\u0196\u0198\7\37\2\2\u0197\u0196\3\2\2\2\u0197\u0198") - buf.write("\3\2\2\2\u0198\u0199\3\2\2\2\u0199\u019b\7-\2\2\u019a") - buf.write("\u0195\3\2\2\2\u019a\u019b\3\2\2\2\u019b\65\3\2\2\2\u019c") - buf.write("\u01a4\58\35\2\u019d\u019f\7\6\2\2\u019e\u01a0\7\37\2") - buf.write("\2\u019f\u019e\3\2\2\2\u019f\u01a0\3\2\2\2\u01a0\u01a1") - buf.write("\3\2\2\2\u01a1\u01a3\58\35\2\u01a2\u019d\3\2\2\2\u01a3") - buf.write("\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2\2\2") - buf.write("\u01a5\67\3\2\2\2\u01a6\u01a4\3\2\2\2\u01a7\u01ac\5\b") - buf.write("\5\2\u01a8\u01ab\5,\27\2\u01a9\u01ab\5> \2\u01aa\u01a8") - buf.write("\3\2\2\2\u01aa\u01a9\3\2\2\2\u01ab\u01ae\3\2\2\2\u01ac") - buf.write("\u01aa\3\2\2\2\u01ac\u01ad\3\2\2\2\u01ad\u01b0\3\2\2\2") - buf.write("\u01ae\u01ac\3\2\2\2\u01af\u01b1\7\37\2\2\u01b0\u01af") - buf.write("\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1\u01ba\3\2\2\2\u01b2") - buf.write("\u01b4\5\62\32\2\u01b3\u01b2\3\2\2\2\u01b4\u01b7\3\2\2") - buf.write("\2\u01b5\u01b3\3\2\2\2\u01b5\u01b6\3\2\2\2\u01b6\u01b8") - buf.write("\3\2\2\2\u01b7\u01b5\3\2\2\2\u01b8\u01ba\7_\2\2\u01b9") - buf.write("\u01a7\3\2\2\2\u01b9\u01b5\3\2\2\2\u01ba9\3\2\2\2\u01bb") - buf.write("\u01c0\7_\2\2\u01bc\u01bd\7\6\2\2\u01bd\u01bf\7_\2\2\u01be") - buf.write("\u01bc\3\2\2\2\u01bf\u01c2\3\2\2\2\u01c0\u01be\3\2\2\2") - buf.write("\u01c0\u01c1\3\2\2\2\u01c1;\3\2\2\2\u01c2\u01c0\3\2\2") - buf.write("\2\u01c3\u01c5\5\36\20\2\u01c4\u01c6\5> \2\u01c5\u01c4") - buf.write("\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6\u01c9\3\2\2\2\u01c7") - buf.write("\u01c9\5\24\13\2\u01c8\u01c3\3\2\2\2\u01c8\u01c7\3\2\2") - buf.write("\2\u01c9=\3\2\2\2\u01ca\u01cc\5\62\32\2\u01cb\u01cd\5") - buf.write("@!\2\u01cc\u01cb\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd\u01d0") - buf.write("\3\2\2\2\u01ce\u01d0\5@!\2\u01cf\u01ca\3\2\2\2\u01cf\u01ce") - buf.write("\3\2\2\2\u01d0?\3\2\2\2\u01d1\u01d2\7(\2\2\u01d2\u01d3") - buf.write("\5> \2\u01d3\u01d4\7)\2\2\u01d4\u01d7\3\2\2\2\u01d5\u01d7") - buf.write("\5B\"\2\u01d6\u01d1\3\2\2\2\u01d6\u01d5\3\2\2\2\u01d7") - buf.write("\u01db\3\2\2\2\u01d8\u01da\5B\"\2\u01d9\u01d8\3\2\2\2") - buf.write("\u01da\u01dd\3\2\2\2\u01db\u01d9\3\2\2\2\u01db\u01dc\3") - buf.write("\2\2\2\u01dcA\3\2\2\2\u01dd\u01db\3\2\2\2\u01de\u01df") - buf.write("\7*\2\2\u01df\u01eb\7+\2\2\u01e0\u01e1\7*\2\2\u01e1\u01e2") - buf.write("\5^\60\2\u01e2\u01e3\7+\2\2\u01e3\u01eb\3\2\2\2\u01e4") - buf.write("\u01e5\7(\2\2\u01e5\u01eb\7)\2\2\u01e6\u01e7\7(\2\2\u01e7") - buf.write("\u01e8\5\64\33\2\u01e8\u01e9\7)\2\2\u01e9\u01eb\3\2\2") - buf.write("\2\u01ea\u01de\3\2\2\2\u01ea\u01e0\3\2\2\2\u01ea\u01e4") - buf.write("\3\2\2\2\u01ea\u01e6\3\2\2\2\u01ebC\3\2\2\2\u01ec\u01f5") - buf.write("\5`\61\2\u01ed\u01ee\7\3\2\2\u01ee\u01f0\5F$\2\u01ef\u01f1") - buf.write("\7\6\2\2\u01f0\u01ef\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1") - buf.write("\u01f2\3\2\2\2\u01f2\u01f3\7\26\2\2\u01f3\u01f5\3\2\2") - buf.write("\2\u01f4\u01ec\3\2\2\2\u01f4\u01ed\3\2\2\2\u01f5E\3\2") - buf.write("\2\2\u01f6\u01fb\5D#\2\u01f7\u01f8\7\6\2\2\u01f8\u01fa") - buf.write("\5D#\2\u01f9\u01f7\3\2\2\2\u01fa\u01fd\3\2\2\2\u01fb\u01f9") - buf.write("\3\2\2\2\u01fb\u01fc\3\2\2\2\u01fcG\3\2\2\2\u01fd\u01fb") - buf.write("\3\2\2\2\u01fe\u0200\5`\61\2\u01ff\u0201\7\37\2\2\u0200") - buf.write("\u01ff\3\2\2\2\u0200\u0201\3\2\2\2\u0201\u0209\3\2\2\2") - buf.write("\u0202\u0203\7\6\2\2\u0203\u0205\5`\61\2\u0204\u0206\7") - buf.write("\37\2\2\u0205\u0204\3\2\2\2\u0205\u0206\3\2\2\2\u0206") - buf.write("\u0208\3\2\2\2\u0207\u0202\3\2\2\2\u0208\u020b\3\2\2\2") - buf.write("\u0209\u0207\3\2\2\2\u0209\u020a\3\2\2\2\u020aI\3\2\2") - buf.write("\2\u020b\u0209\3\2\2\2\u020c\u0213\5L\'\2\u020d\u020e") - buf.write("\7.\2\2\u020e\u0212\5L\'\2\u020f\u0210\7/\2\2\u0210\u0212") - buf.write("\5L\'\2\u0211\u020d\3\2\2\2\u0211\u020f\3\2\2\2\u0212") - buf.write("\u0215\3\2\2\2\u0213\u0211\3\2\2\2\u0213\u0214\3\2\2\2") - buf.write("\u0214K\3\2\2\2\u0215\u0213\3\2\2\2\u0216\u021f\5N(\2") - buf.write("\u0217\u0218\7,\2\2\u0218\u021e\5N(\2\u0219\u021a\7\60") - buf.write("\2\2\u021a\u021e\5N(\2\u021b\u021c\7\61\2\2\u021c\u021e") - buf.write("\5N(\2\u021d\u0217\3\2\2\2\u021d\u0219\3\2\2\2\u021d\u021b") - buf.write("\3\2\2\2\u021e\u0221\3\2\2\2\u021f\u021d\3\2\2\2\u021f") - buf.write("\u0220\3\2\2\2\u0220M\3\2\2\2\u0221\u021f\3\2\2\2\u0222") - buf.write("\u0223\7(\2\2\u0223\u0224\5<\37\2\u0224\u0225\7)\2\2\u0225") - buf.write("\u0226\5N(\2\u0226\u0229\3\2\2\2\u0227\u0229\5P)\2\u0228") - buf.write("\u0222\3\2\2\2\u0228\u0227\3\2\2\2\u0229O\3\2\2\2\u022a") - buf.write("\u023a\5R*\2\u022b\u022c\7\62\2\2\u022c\u023a\5P)\2\u022d") - buf.write("\u022e\7\63\2\2\u022e\u023a\5P)\2\u022f\u0230\5V,\2\u0230") - buf.write("\u0231\5N(\2\u0231\u023a\3\2\2\2\u0232\u0233\7\64\2\2") - buf.write("\u0233\u023a\5P)\2\u0234\u0235\7\64\2\2\u0235\u0236\7") - buf.write("(\2\2\u0236\u0237\5<\37\2\u0237\u0238\7)\2\2\u0238\u023a") - buf.write("\3\2\2\2\u0239\u022a\3\2\2\2\u0239\u022b\3\2\2\2\u0239") - buf.write("\u022d\3\2\2\2\u0239\u022f\3\2\2\2\u0239\u0232\3\2\2\2") - buf.write("\u0239\u0234\3\2\2\2\u023aQ\3\2\2\2\u023b\u023c\5X-\2") - buf.write("\u023c\u025a\b*\1\2\u023d\u023e\7*\2\2\u023e\u023f\5\\") - buf.write("/\2\u023f\u0240\7+\2\2\u0240\u0259\3\2\2\2\u0241\u0242") - buf.write("\7(\2\2\u0242\u0243\7)\2\2\u0243\u0259\b*\1\2\u0244\u0245") - buf.write("\7(\2\2\u0245\u0246\5H%\2\u0246\u0247\7)\2\2\u0247\u0248") - buf.write("\b*\1\2\u0248\u0259\3\2\2\2\u0249\u024a\7(\2\2\u024a\u024b") - buf.write("\5T+\2\u024b\u024c\7)\2\2\u024c\u0259\3\2\2\2\u024d\u024e") - buf.write("\7\65\2\2\u024e\u024f\7_\2\2\u024f\u0259\b*\1\2\u0250") - buf.write("\u0251\7,\2\2\u0251\u0252\7_\2\2\u0252\u0259\b*\1\2\u0253") - buf.write("\u0254\7\66\2\2\u0254\u0255\7_\2\2\u0255\u0259\b*\1\2") - buf.write("\u0256\u0259\7\62\2\2\u0257\u0259\7\63\2\2\u0258\u023d") - buf.write("\3\2\2\2\u0258\u0241\3\2\2\2\u0258\u0244\3\2\2\2\u0258") - buf.write("\u0249\3\2\2\2\u0258\u024d\3\2\2\2\u0258\u0250\3\2\2\2") - buf.write("\u0258\u0253\3\2\2\2\u0258\u0256\3\2\2\2\u0258\u0257\3") - buf.write("\2\2\2\u0259\u025c\3\2\2\2\u025a\u0258\3\2\2\2\u025a\u025b") - buf.write("\3\2\2\2\u025bS\3\2\2\2\u025c\u025a\3\2\2\2\u025d\u0262") - buf.write("\58\35\2\u025e\u025f\7\6\2\2\u025f\u0261\58\35\2\u0260") - buf.write("\u025e\3\2\2\2\u0261\u0264\3\2\2\2\u0262\u0260\3\2\2\2") - buf.write("\u0262\u0263\3\2\2\2\u0263U\3\2\2\2\u0264\u0262\3\2\2") - buf.write("\2\u0265\u0266\t\5\2\2\u0266W\3\2\2\2\u0267\u026e\7_\2") - buf.write("\2\u0268\u026e\5Z.\2\u0269\u026a\7(\2\2\u026a\u026b\5") - buf.write("\\/\2\u026b\u026c\7)\2\2\u026c\u026e\3\2\2\2\u026d\u0267") - buf.write("\3\2\2\2\u026d\u0268\3\2\2\2\u026d\u0269\3\2\2\2\u026e") - buf.write("Y\3\2\2\2\u026f\u028a\7b\2\2\u0270\u028a\7d\2\2\u0271") - buf.write("\u028a\7c\2\2\u0272\u028a\7`\2\2\u0273\u0275\7_\2\2\u0274") - buf.write("\u0273\3\2\2\2\u0275\u0278\3\2\2\2\u0276\u0274\3\2\2\2") - buf.write("\u0276\u0277\3\2\2\2\u0277\u027a\3\2\2\2\u0278\u0276\3") - buf.write("\2\2\2\u0279\u027b\7a\2\2\u027a\u0279\3\2\2\2\u027b\u027c") - buf.write("\3\2\2\2\u027c\u027a\3\2\2\2\u027c\u027d\3\2\2\2\u027d") - buf.write("\u027f\3\2\2\2\u027e\u0276\3\2\2\2\u027f\u0280\3\2\2\2") - buf.write("\u0280\u027e\3\2\2\2\u0280\u0281\3\2\2\2\u0281\u0285\3") - buf.write("\2\2\2\u0282\u0284\7_\2\2\u0283\u0282\3\2\2\2\u0284\u0287") - buf.write("\3\2\2\2\u0285\u0283\3\2\2\2\u0285\u0286\3\2\2\2\u0286") - buf.write("\u028a\3\2\2\2\u0287\u0285\3\2\2\2\u0288\u028a\7e\2\2") - buf.write("\u0289\u026f\3\2\2\2\u0289\u0270\3\2\2\2\u0289\u0271\3") - buf.write("\2\2\2\u0289\u0272\3\2\2\2\u0289\u027e\3\2\2\2\u0289\u0288") - buf.write("\3\2\2\2\u028a[\3\2\2\2\u028b\u0290\5`\61\2\u028c\u028d") - buf.write("\7\6\2\2\u028d\u028f\5`\61\2\u028e\u028c\3\2\2\2\u028f") - buf.write("\u0292\3\2\2\2\u0290\u028e\3\2\2\2\u0290\u0291\3\2\2\2") - buf.write("\u0291]\3\2\2\2\u0292\u0290\3\2\2\2\u0293\u0294\5f\64") - buf.write("\2\u0294_\3\2\2\2\u0295\u0296\5b\62\2\u0296\u0297\5d\63") - buf.write("\2\u0297\u0298\5`\61\2\u0298\u029b\3\2\2\2\u0299\u029b") - buf.write("\5f\64\2\u029a\u0295\3\2\2\2\u029a\u0299\3\2\2\2\u029b") - buf.write("a\3\2\2\2\u029c\u029d\5P)\2\u029dc\3\2\2\2\u029e\u029f") - buf.write("\t\6\2\2\u029fe\3\2\2\2\u02a0\u02a7\5h\65\2\u02a1\u02a2") - buf.write("\7D\2\2\u02a2\u02a3\5\\/\2\u02a3\u02a4\7\31\2\2\u02a4") - buf.write("\u02a5\5f\64\2\u02a5\u02a6\b\64\1\2\u02a6\u02a8\3\2\2") - buf.write("\2\u02a7\u02a1\3\2\2\2\u02a7\u02a8\3\2\2\2\u02a8g\3\2") - buf.write("\2\2\u02a9\u02ae\5j\66\2\u02aa\u02ab\7E\2\2\u02ab\u02ad") - buf.write("\5j\66\2\u02ac\u02aa\3\2\2\2\u02ad\u02b0\3\2\2\2\u02ae") - buf.write("\u02ac\3\2\2\2\u02ae\u02af\3\2\2\2\u02afi\3\2\2\2\u02b0") - buf.write("\u02ae\3\2\2\2\u02b1\u02b6\5l\67\2\u02b2\u02b3\7F\2\2") - buf.write("\u02b3\u02b5\5l\67\2\u02b4\u02b2\3\2\2\2\u02b5\u02b8\3") - buf.write("\2\2\2\u02b6\u02b4\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7k") - buf.write("\3\2\2\2\u02b8\u02b6\3\2\2\2\u02b9\u02be\5n8\2\u02ba\u02bb") - buf.write("\7G\2\2\u02bb\u02bd\5n8\2\u02bc\u02ba\3\2\2\2\u02bd\u02c0") - buf.write("\3\2\2\2\u02be\u02bc\3\2\2\2\u02be\u02bf\3\2\2\2\u02bf") - buf.write("m\3\2\2\2\u02c0\u02be\3\2\2\2\u02c1\u02c6\5p9\2\u02c2") - buf.write("\u02c3\7H\2\2\u02c3\u02c5\5p9\2\u02c4\u02c2\3\2\2\2\u02c5") - buf.write("\u02c8\3\2\2\2\u02c6\u02c4\3\2\2\2\u02c6\u02c7\3\2\2\2") - buf.write("\u02c7o\3\2\2\2\u02c8\u02c6\3\2\2\2\u02c9\u02ce\5r:\2") - buf.write("\u02ca\u02cb\7\67\2\2\u02cb\u02cd\5r:\2\u02cc\u02ca\3") - buf.write("\2\2\2\u02cd\u02d0\3\2\2\2\u02ce\u02cc\3\2\2\2\u02ce\u02cf") - buf.write("\3\2\2\2\u02cfq\3\2\2\2\u02d0\u02ce\3\2\2\2\u02d1\u02d6") - buf.write("\5t;\2\u02d2\u02d3\t\7\2\2\u02d3\u02d5\5t;\2\u02d4\u02d2") - buf.write("\3\2\2\2\u02d5\u02d8\3\2\2\2\u02d6\u02d4\3\2\2\2\u02d6") - buf.write("\u02d7\3\2\2\2\u02d7s\3\2\2\2\u02d8\u02d6\3\2\2\2\u02d9") - buf.write("\u02de\5v<\2\u02da\u02db\t\b\2\2\u02db\u02dd\5v<\2\u02dc") - buf.write("\u02da\3\2\2\2\u02dd\u02e0\3\2\2\2\u02de\u02dc\3\2\2\2") - buf.write("\u02de\u02df\3\2\2\2\u02dfu\3\2\2\2\u02e0\u02de\3\2\2") - buf.write("\2\u02e1\u02e6\5J&\2\u02e2\u02e3\t\t\2\2\u02e3\u02e5\5") - buf.write("J&\2\u02e4\u02e2\3\2\2\2\u02e5\u02e8\3\2\2\2\u02e6\u02e4") - buf.write("\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7w\3\2\2\2\u02e8\u02e6") - buf.write("\3\2\2\2\u02e9\u02f5\5\u0082B\2\u02ea\u02f5\5\u0084C\2") - buf.write("\u02eb\u02f5\5\u0088E\2\u02ec\u02f5\5\u008aF\2\u02ed\u02f5") - buf.write("\5\u008cG\2\u02ee\u02f5\5\u008eH\2\u02ef\u02f5\5\u0080") - buf.write("A\2\u02f0\u02f5\5z>\2\u02f1\u02f5\5|?\2\u02f2\u02f5\5") - buf.write("~@\2\u02f3\u02f5\5\n\6\2\u02f4\u02e9\3\2\2\2\u02f4\u02ea") - buf.write("\3\2\2\2\u02f4\u02eb\3\2\2\2\u02f4\u02ec\3\2\2\2\u02f4") - buf.write("\u02ed\3\2\2\2\u02f4\u02ee\3\2\2\2\u02f4\u02ef\3\2\2\2") - buf.write("\u02f4\u02f0\3\2\2\2\u02f4\u02f1\3\2\2\2\u02f4\u02f2\3") - buf.write("\2\2\2\u02f4\u02f3\3\2\2\2\u02f5y\3\2\2\2\u02f6\u02f8") - buf.write("\7Q\2\2\u02f7\u02f6\3\2\2\2\u02f7\u02f8\3\2\2\2\u02f8") - buf.write("\u02f9\3\2\2\2\u02f9\u02fa\7_\2\2\u02fa\u02fe\7(\2\2\u02fb") - buf.write("\u02fd\n\n\2\2\u02fc\u02fb\3\2\2\2\u02fd\u0300\3\2\2\2") - buf.write("\u02fe\u02fc\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff\u0301\3") - buf.write("\2\2\2\u0300\u02fe\3\2\2\2\u0301\u0302\7)\2\2\u0302\u0303") - buf.write("\7\4\2\2\u0303{\3\2\2\2\u0304\u0305\7R\2\2\u0305\u0309") - buf.write("\7\3\2\2\u0306\u0308\n\13\2\2\u0307\u0306\3\2\2\2\u0308") - buf.write("\u030b\3\2\2\2\u0309\u0307\3\2\2\2\u0309\u030a\3\2\2\2") - buf.write("\u030a\u030c\3\2\2\2\u030b\u0309\3\2\2\2\u030c\u030d\7") - buf.write("\26\2\2\u030d}\3\2\2\2\u030e\u030f\7S\2\2\u030f\u0313") - buf.write("\7\3\2\2\u0310\u0312\n\13\2\2\u0311\u0310\3\2\2\2\u0312") - buf.write("\u0315\3\2\2\2\u0313\u0311\3\2\2\2\u0313\u0314\3\2\2\2") - buf.write("\u0314\u0316\3\2\2\2\u0315\u0313\3\2\2\2\u0316\u0317\7") - buf.write("\26\2\2\u0317\177\3\2\2\2\u0318\u0319\7_\2\2\u0319\u031d") - buf.write("\7(\2\2\u031a\u031c\5\n\6\2\u031b\u031a\3\2\2\2\u031c") - buf.write("\u031f\3\2\2\2\u031d\u031b\3\2\2\2\u031d\u031e\3\2\2\2") - buf.write("\u031e\u0321\3\2\2\2\u031f\u031d\3\2\2\2\u0320\u0322\5") - buf.write("\u0086D\2\u0321\u0320\3\2\2\2\u0321\u0322\3\2\2\2\u0322") - buf.write("\u0324\3\2\2\2\u0323\u0325\5\\/\2\u0324\u0323\3\2\2\2") - buf.write("\u0324\u0325\3\2\2\2\u0325\u0326\3\2\2\2\u0326\u0327\7") - buf.write(")\2\2\u0327\u0081\3\2\2\2\u0328\u0329\7_\2\2\u0329\u032a") - buf.write("\7\31\2\2\u032a\u0334\5x=\2\u032b\u032c\7T\2\2\u032c\u032d") - buf.write("\5^\60\2\u032d\u032e\7\31\2\2\u032e\u032f\5x=\2\u032f") - buf.write("\u0334\3\2\2\2\u0330\u0331\7U\2\2\u0331\u0332\7\31\2\2") - buf.write("\u0332\u0334\5x=\2\u0333\u0328\3\2\2\2\u0333\u032b\3\2") - buf.write("\2\2\u0333\u0330\3\2\2\2\u0334\u0083\3\2\2\2\u0335\u0339") - buf.write("\7\3\2\2\u0336\u0338\5\n\6\2\u0337\u0336\3\2\2\2\u0338") - buf.write("\u033b\3\2\2\2\u0339\u0337\3\2\2\2\u0339\u033a\3\2\2\2") - buf.write("\u033a\u033d\3\2\2\2\u033b\u0339\3\2\2\2\u033c\u033e\5") - buf.write("\u0086D\2\u033d\u033c\3\2\2\2\u033d\u033e\3\2\2\2\u033e") - buf.write("\u033f\3\2\2\2\u033f\u0340\7\26\2\2\u0340\u0085\3\2\2") - buf.write("\2\u0341\u0343\5x=\2\u0342\u0341\3\2\2\2\u0343\u0344\3") - buf.write("\2\2\2\u0344\u0342\3\2\2\2\u0344\u0345\3\2\2\2\u0345\u0087") - buf.write("\3\2\2\2\u0346\u034b\7\4\2\2\u0347\u0348\5\\/\2\u0348") - buf.write("\u0349\7\4\2\2\u0349\u034b\3\2\2\2\u034a\u0346\3\2\2\2") - buf.write("\u034a\u0347\3\2\2\2\u034b\u0089\3\2\2\2\u034c\u034d\7") - buf.write("V\2\2\u034d\u034e\7(\2\2\u034e\u034f\5\\/\2\u034f\u0350") - buf.write("\7)\2\2\u0350\u0351\bF\1\2\u0351\u0354\5x=\2\u0352\u0353") - buf.write("\7W\2\2\u0353\u0355\5x=\2\u0354\u0352\3\2\2\2\u0354\u0355") - buf.write("\3\2\2\2\u0355\u035d\3\2\2\2\u0356\u0357\7X\2\2\u0357") - buf.write("\u0358\7(\2\2\u0358\u0359\5\\/\2\u0359\u035a\7)\2\2\u035a") - buf.write("\u035b\5x=\2\u035b\u035d\3\2\2\2\u035c\u034c\3\2\2\2\u035c") - buf.write("\u0356\3\2\2\2\u035d\u008b\3\2\2\2\u035e\u035f\7Y\2\2") - buf.write("\u035f\u0360\7(\2\2\u0360\u0361\5\\/\2\u0361\u0362\7)") - buf.write("\2\2\u0362\u0363\5x=\2\u0363\u0364\bG\1\2\u0364\u036f") - buf.write("\3\2\2\2\u0365\u0366\7Z\2\2\u0366\u0367\5x=\2\u0367\u0368") - buf.write("\7Y\2\2\u0368\u0369\7(\2\2\u0369\u036a\5\\/\2\u036a\u036b") - buf.write("\7)\2\2\u036b\u036c\7\4\2\2\u036c\u036d\bG\1\2\u036d\u036f") - buf.write("\3\2\2\2\u036e\u035e\3\2\2\2\u036e\u0365\3\2\2\2\u036f") - buf.write("\u008d\3\2\2\2\u0370\u0371\7[\2\2\u0371\u0372\7_\2\2\u0372") - buf.write("\u037e\7\4\2\2\u0373\u0374\7\\\2\2\u0374\u037e\7\4\2\2") - buf.write("\u0375\u0376\7]\2\2\u0376\u037e\7\4\2\2\u0377\u0378\7") - buf.write("^\2\2\u0378\u037e\7\4\2\2\u0379\u037a\7^\2\2\u037a\u037b") - buf.write("\5\\/\2\u037b\u037c\7\4\2\2\u037c\u037e\3\2\2\2\u037d") - buf.write("\u0370\3\2\2\2\u037d\u0373\3\2\2\2\u037d\u0375\3\2\2\2") - buf.write("\u037d\u0377\3\2\2\2\u037d\u0379\3\2\2\2\u037e\u008f\3") - buf.write("\2\2\2o\u0093\u0097\u009d\u00a6\u00a8\u00ab\u00b1\u00b6") - buf.write("\u00bd\u00bf\u00c3\u00cb\u00d0\u00d7\u00dd\u00f4\u00f9") - buf.write("\u00ff\u0108\u010f\u0117\u0119\u0120\u0126\u012a\u0130") - buf.write("\u0139\u013f\u0146\u014c\u0151\u0154\u0157\u015a\u015e") - buf.write("\u0164\u0169\u0170\u0172\u0184\u018a\u018d\u0192\u0197") - buf.write("\u019a\u019f\u01a4\u01aa\u01ac\u01b0\u01b5\u01b9\u01c0") - buf.write("\u01c5\u01c8\u01cc\u01cf\u01d6\u01db\u01ea\u01f0\u01f4") - buf.write("\u01fb\u0200\u0205\u0209\u0211\u0213\u021d\u021f\u0228") - buf.write("\u0239\u0258\u025a\u0262\u026d\u0276\u027c\u0280\u0285") - buf.write("\u0289\u0290\u029a\u02a7\u02ae\u02b6\u02be\u02c6\u02ce") - buf.write("\u02d6\u02de\u02e6\u02f4\u02f7\u02fe\u0309\u0313\u031d") - buf.write("\u0321\u0324\u0333\u0339\u033d\u0344\u034a\u0354\u035c") - buf.write("\u036e\u037d") - return buf.getvalue() - - -class CParser ( Parser ): - - grammarFileName = "C.g4" - - atn = ATNDeserializer().deserialize(serializedATN()) - - decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] - - sharedContextCache = PredictionContextCache() - - literalNames = [ "", "'{'", "';'", "'typedef'", "','", "'='", - "'extern'", "'static'", "'auto'", "'register'", "'STATIC'", - "'void'", "'char'", "'short'", "'int'", "'long'", "'float'", - "'double'", "'signed'", "'unsigned'", "'}'", "'struct'", - "'union'", "':'", "'enum'", "'const'", "'volatile'", - "'IN'", "'OUT'", "'OPTIONAL'", "'CONST'", "'UNALIGNED'", - "'VOLATILE'", "'GLOBAL_REMOVE_IF_UNREFERENCED'", "'EFIAPI'", - "'EFI_BOOTSERVICE'", "'EFI_RUNTIMESERVICE'", "'PACKED'", - "'('", "')'", "'['", "']'", "'*'", "'...'", "'+'", - "'-'", "'/'", "'%'", "'++'", "'--'", "'sizeof'", "'.'", - "'->'", "'&'", "'~'", "'!'", "'*='", "'/='", "'%='", - "'+='", "'-='", "'<<='", "'>>='", "'&='", "'^='", "'|='", - "'?'", "'||'", "'&&'", "'|'", "'^'", "'=='", "'!='", - "'<'", "'>'", "'<='", "'>='", "'<<'", "'>>'", "'__asm__'", - "'_asm'", "'__asm'", "'case'", "'default'", "'if'", - "'else'", "'switch'", "'while'", "'do'", "'goto'", - "'continue'", "'break'", "'return'" ] - - symbolicNames = [ "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "IDENTIFIER", "CHARACTER_LITERAL", "STRING_LITERAL", - "HEX_LITERAL", "DECIMAL_LITERAL", "OCTAL_LITERAL", - "FLOATING_POINT_LITERAL", "WS", "BS", "UnicodeVocabulary", - "COMMENT", "LINE_COMMENT", "LINE_COMMAND" ] - - RULE_translation_unit = 0 - RULE_external_declaration = 1 - RULE_function_definition = 2 - RULE_declaration_specifiers = 3 - RULE_declaration = 4 - RULE_init_declarator_list = 5 - RULE_init_declarator = 6 - RULE_storage_class_specifier = 7 - RULE_type_specifier = 8 - RULE_type_id = 9 - RULE_struct_or_union_specifier = 10 - RULE_struct_or_union = 11 - RULE_struct_declaration_list = 12 - RULE_struct_declaration = 13 - RULE_specifier_qualifier_list = 14 - RULE_struct_declarator_list = 15 - RULE_struct_declarator = 16 - RULE_enum_specifier = 17 - RULE_enumerator_list = 18 - RULE_enumerator = 19 - RULE_type_qualifier = 20 - RULE_declarator = 21 - RULE_direct_declarator = 22 - RULE_declarator_suffix = 23 - RULE_pointer = 24 - RULE_parameter_type_list = 25 - RULE_parameter_list = 26 - RULE_parameter_declaration = 27 - RULE_identifier_list = 28 - RULE_type_name = 29 - RULE_abstract_declarator = 30 - RULE_direct_abstract_declarator = 31 - RULE_abstract_declarator_suffix = 32 - RULE_initializer = 33 - RULE_initializer_list = 34 - RULE_argument_expression_list = 35 - RULE_additive_expression = 36 - RULE_multiplicative_expression = 37 - RULE_cast_expression = 38 - RULE_unary_expression = 39 - RULE_postfix_expression = 40 - RULE_macro_parameter_list = 41 - RULE_unary_operator = 42 - RULE_primary_expression = 43 - RULE_constant = 44 - RULE_expression = 45 - RULE_constant_expression = 46 - RULE_assignment_expression = 47 - RULE_lvalue = 48 - RULE_assignment_operator = 49 - RULE_conditional_expression = 50 - RULE_logical_or_expression = 51 - RULE_logical_and_expression = 52 - RULE_inclusive_or_expression = 53 - RULE_exclusive_or_expression = 54 - RULE_and_expression = 55 - RULE_equality_expression = 56 - RULE_relational_expression = 57 - RULE_shift_expression = 58 - RULE_statement = 59 - RULE_asm2_statement = 60 - RULE_asm1_statement = 61 - RULE_asm_statement = 62 - RULE_macro_statement = 63 - RULE_labeled_statement = 64 - RULE_compound_statement = 65 - RULE_statement_list = 66 - RULE_expression_statement = 67 - RULE_selection_statement = 68 - RULE_iteration_statement = 69 - RULE_jump_statement = 70 - - ruleNames = [ "translation_unit", "external_declaration", "function_definition", - "declaration_specifiers", "declaration", "init_declarator_list", - "init_declarator", "storage_class_specifier", "type_specifier", - "type_id", "struct_or_union_specifier", "struct_or_union", - "struct_declaration_list", "struct_declaration", "specifier_qualifier_list", - "struct_declarator_list", "struct_declarator", "enum_specifier", - "enumerator_list", "enumerator", "type_qualifier", "declarator", - "direct_declarator", "declarator_suffix", "pointer", - "parameter_type_list", "parameter_list", "parameter_declaration", - "identifier_list", "type_name", "abstract_declarator", - "direct_abstract_declarator", "abstract_declarator_suffix", - "initializer", "initializer_list", "argument_expression_list", - "additive_expression", "multiplicative_expression", "cast_expression", - "unary_expression", "postfix_expression", "macro_parameter_list", - "unary_operator", "primary_expression", "constant", "expression", - "constant_expression", "assignment_expression", "lvalue", - "assignment_operator", "conditional_expression", "logical_or_expression", - "logical_and_expression", "inclusive_or_expression", - "exclusive_or_expression", "and_expression", "equality_expression", - "relational_expression", "shift_expression", "statement", - "asm2_statement", "asm1_statement", "asm_statement", - "macro_statement", "labeled_statement", "compound_statement", - "statement_list", "expression_statement", "selection_statement", - "iteration_statement", "jump_statement" ] - - EOF = Token.EOF - T__0=1 - T__1=2 - T__2=3 - T__3=4 - T__4=5 - T__5=6 - T__6=7 - T__7=8 - T__8=9 - T__9=10 - T__10=11 - T__11=12 - T__12=13 - T__13=14 - T__14=15 - T__15=16 - T__16=17 - T__17=18 - T__18=19 - T__19=20 - T__20=21 - T__21=22 - T__22=23 - T__23=24 - T__24=25 - T__25=26 - T__26=27 - T__27=28 - T__28=29 - T__29=30 - T__30=31 - T__31=32 - T__32=33 - T__33=34 - T__34=35 - T__35=36 - T__36=37 - T__37=38 - T__38=39 - T__39=40 - T__40=41 - T__41=42 - T__42=43 - T__43=44 - T__44=45 - T__45=46 - T__46=47 - T__47=48 - T__48=49 - T__49=50 - T__50=51 - T__51=52 - T__52=53 - T__53=54 - T__54=55 - T__55=56 - T__56=57 - T__57=58 - T__58=59 - T__59=60 - T__60=61 - T__61=62 - T__62=63 - T__63=64 - T__64=65 - T__65=66 - T__66=67 - T__67=68 - T__68=69 - T__69=70 - T__70=71 - T__71=72 - T__72=73 - T__73=74 - T__74=75 - T__75=76 - T__76=77 - T__77=78 - T__78=79 - T__79=80 - T__80=81 - T__81=82 - T__82=83 - T__83=84 - T__84=85 - T__85=86 - T__86=87 - T__87=88 - T__88=89 - T__89=90 - T__90=91 - T__91=92 - IDENTIFIER=93 - CHARACTER_LITERAL=94 - STRING_LITERAL=95 - HEX_LITERAL=96 - DECIMAL_LITERAL=97 - OCTAL_LITERAL=98 - FLOATING_POINT_LITERAL=99 - WS=100 - BS=101 - UnicodeVocabulary=102 - COMMENT=103 - LINE_COMMENT=104 - LINE_COMMAND=105 - - def __init__(self, input:TokenStream, output:TextIO = sys.stdout): - super().__init__(input, output) - self.checkVersion("4.7.1") - self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) - self._predicates = None - - - - +from . import CodeFragment +from . import FileProfile + + + +# for convenience in actions +HIDDEN = BaseRecognizer.HIDDEN + +# token types +BS=20 +LINE_COMMENT=23 +FloatTypeSuffix=16 +IntegerTypeSuffix=14 +LETTER=11 +OCTAL_LITERAL=6 +CHARACTER_LITERAL=8 +Exponent=15 +EOF=-1 +HexDigit=13 +STRING_LITERAL=9 +WS=19 +FLOATING_POINT_LITERAL=10 +IDENTIFIER=4 +UnicodeEscape=18 +LINE_COMMAND=24 +UnicodeVocabulary=21 +HEX_LITERAL=5 +COMMENT=22 +DECIMAL_LITERAL=7 +EscapeSequence=12 +OctalEscape=17 + +# token names +tokenNames = [ + "", "", "", "", + "IDENTIFIER", "HEX_LITERAL", "OCTAL_LITERAL", "DECIMAL_LITERAL", "CHARACTER_LITERAL", + "STRING_LITERAL", "FLOATING_POINT_LITERAL", "LETTER", "EscapeSequence", + "HexDigit", "IntegerTypeSuffix", "Exponent", "FloatTypeSuffix", "OctalEscape", + "UnicodeEscape", "WS", "BS", "UnicodeVocabulary", "COMMENT", "LINE_COMMENT", + "LINE_COMMAND", "';'", "'typedef'", "','", "'='", "'extern'", "'static'", + "'auto'", "'register'", "'STATIC'", "'void'", "'char'", "'short'", "'int'", + "'long'", "'float'", "'double'", "'signed'", "'unsigned'", "'{'", "'}'", + "'struct'", "'union'", "':'", "'enum'", "'const'", "'volatile'", "'IN'", + "'OUT'", "'OPTIONAL'", "'CONST'", "'UNALIGNED'", "'VOLATILE'", "'GLOBAL_REMOVE_IF_UNREFERENCED'", + "'EFIAPI'", "'EFI_BOOTSERVICE'", "'EFI_RUNTIMESERVICE'", "'PACKED'", + "'('", "')'", "'['", "']'", "'*'", "'...'", "'+'", "'-'", "'/'", "'%'", + "'++'", "'--'", "'sizeof'", "'.'", "'->'", "'&'", "'~'", "'!'", "'*='", + "'/='", "'%='", "'+='", "'-='", "'<<='", "'>>='", "'&='", "'^='", "'|='", + "'?'", "'||'", "'&&'", "'|'", "'^'", "'=='", "'!='", "'<'", "'>'", "'<='", + "'>='", "'<<'", "'>>'", "'__asm__'", "'_asm'", "'__asm'", "'case'", + "'default'", "'if'", "'else'", "'switch'", "'while'", "'do'", "'for'", + "'goto'", "'continue'", "'break'", "'return'" +] + + +class function_definition_scope(object): + def __init__(self): + self.ModifierText = None + self.DeclText = None + self.LBLine = None + self.LBOffset = None + self.DeclLine = None + self.DeclOffset = None +class postfix_expression_scope(object): + def __init__(self): + self.FuncCallText = None + + +class CParser(Parser): + grammarFileName = "C.g" + tokenNames = tokenNames + + def __init__(self, input): + Parser.__init__(self, input) + self.ruleMemo = {} + + self.function_definition_stack = [] + self.postfix_expression_stack = [] + def printTokenInfo(self, line, offset, tokenText): print(str(line)+ ',' + str(offset) + ':' + str(tokenText)) - + def StorePredicateExpression(self, StartLine, StartOffset, EndLine, EndOffset, Text): - PredExp = CodeFragment.PredicateExpression(Text, (StartLine, StartOffset), (EndLine, EndOffset)) - FileProfile.PredicateExpressionList.append(PredExp) - + PredExp = CodeFragment.PredicateExpression(Text, (StartLine, StartOffset), (EndLine, EndOffset)) + FileProfile.PredicateExpressionList.append(PredExp) + def StoreEnumerationDefinition(self, StartLine, StartOffset, EndLine, EndOffset, Text): - EnumDef = CodeFragment.EnumerationDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset)) - FileProfile.EnumerationDefinitionList.append(EnumDef) - + EnumDef = CodeFragment.EnumerationDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset)) + FileProfile.EnumerationDefinitionList.append(EnumDef) + def StoreStructUnionDefinition(self, StartLine, StartOffset, EndLine, EndOffset, Text): - SUDef = CodeFragment.StructUnionDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset)) - FileProfile.StructUnionDefinitionList.append(SUDef) - + SUDef = CodeFragment.StructUnionDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset)) + FileProfile.StructUnionDefinitionList.append(SUDef) + def StoreTypedefDefinition(self, StartLine, StartOffset, EndLine, EndOffset, FromText, ToText): - Tdef = CodeFragment.TypedefDefinition(FromText, ToText, (StartLine, StartOffset), (EndLine, EndOffset)) - FileProfile.TypedefDefinitionList.append(Tdef) + Tdef = CodeFragment.TypedefDefinition(FromText, ToText, (StartLine, StartOffset), (EndLine, EndOffset)) + FileProfile.TypedefDefinitionList.append(Tdef) def StoreFunctionDefinition(self, StartLine, StartOffset, EndLine, EndOffset, ModifierText, DeclText, LeftBraceLine, LeftBraceOffset, DeclLine, DeclOffset): - FuncDef = CodeFragment.FunctionDefinition(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset), (LeftBraceLine, LeftBraceOffset), (DeclLine, DeclOffset)) - FileProfile.FunctionDefinitionList.append(FuncDef) - + FuncDef = CodeFragment.FunctionDefinition(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset), (LeftBraceLine, LeftBraceOffset), (DeclLine, DeclOffset)) + FileProfile.FunctionDefinitionList.append(FuncDef) + def StoreVariableDeclaration(self, StartLine, StartOffset, EndLine, EndOffset, ModifierText, DeclText): - VarDecl = CodeFragment.VariableDeclaration(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset)) - FileProfile.VariableDeclarationList.append(VarDecl) + VarDecl = CodeFragment.VariableDeclaration(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset)) + FileProfile.VariableDeclarationList.append(VarDecl) def StoreFunctionCalling(self, StartLine, StartOffset, EndLine, EndOffset, FuncName, ParamList): - FuncCall = CodeFragment.FunctionCalling(FuncName, ParamList, (StartLine, StartOffset), (EndLine, EndOffset)) - FileProfile.FunctionCallingList.append(FuncCall) + FuncCall = CodeFragment.FunctionCalling(FuncName, ParamList, (StartLine, StartOffset), (EndLine, EndOffset)) + FileProfile.FunctionCallingList.append(FuncCall) - class Translation_unitContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR start translation_unit + # C.g:102:1: translation_unit : ( external_declaration )* ; + def translation_unit(self, ): - def external_declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.External_declarationContext) - else: - return self.getTypedRuleContext(CParser.External_declarationContext,i) + translation_unit_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 1): + return + # C.g:103:2: ( ( external_declaration )* ) + # C.g:103:4: ( external_declaration )* + # C.g:103:4: ( external_declaration )* + while True: #loop1 + alt1 = 2 + LA1_0 = self.input.LA(1) - def getRuleIndex(self): - return CParser.RULE_translation_unit + if (LA1_0 == IDENTIFIER or LA1_0 == 26 or (29 <= LA1_0 <= 42) or (45 <= LA1_0 <= 46) or (48 <= LA1_0 <= 62) or LA1_0 == 66) : + alt1 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTranslation_unit" ): - listener.enterTranslation_unit(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTranslation_unit" ): - listener.exitTranslation_unit(self) + if alt1 == 1: + # C.g:0:0: external_declaration + self.following.append(self.FOLLOW_external_declaration_in_translation_unit74) + self.external_declaration() + self.following.pop() + if self.failed: + return + else: + break #loop1 - def translation_unit(self): - localctx = CParser.Translation_unitContext(self, self._ctx, self.state) - self.enterRule(localctx, 0, self.RULE_translation_unit) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 145 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__2) | (1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9) | (1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36) | (1 << CParser.T__37) | (1 << CParser.T__41))) != 0) or _la==CParser.IDENTIFIER: - self.state = 142 - self.external_declaration() - self.state = 147 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 1, translation_unit_StartIndex) + + pass - class External_declarationContext(ParserRuleContext): + return - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR end translation_unit - def declarator(self): - return self.getTypedRuleContext(CParser.DeclaratorContext,0) + # $ANTLR start external_declaration + # C.g:114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? ); + def external_declaration(self, ): - def declaration_specifiers(self): - return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) + external_declaration_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 2): + return + # C.g:119:2: ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? ) + alt3 = 3 + LA3_0 = self.input.LA(1) - def declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.DeclarationContext) - else: - return self.getTypedRuleContext(CParser.DeclarationContext,i) + if ((29 <= LA3_0 <= 33)) : + LA3_1 = self.input.LA(2) + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return - def function_definition(self): - return self.getTypedRuleContext(CParser.Function_definitionContext,0) + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 1, self.input) + raise nvae - def macro_statement(self): - return self.getTypedRuleContext(CParser.Macro_statementContext,0) + elif (LA3_0 == 34) : + LA3_2 = self.input.LA(2) + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return - def getRuleIndex(self): - return CParser.RULE_external_declaration + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 2, self.input) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExternal_declaration" ): - listener.enterExternal_declaration(self) + raise nvae - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExternal_declaration" ): - listener.exitExternal_declaration(self) + elif (LA3_0 == 35) : + LA3_3 = self.input.LA(2) + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 3, self.input) + raise nvae - def external_declaration(self): + elif (LA3_0 == 36) : + LA3_4 = self.input.LA(2) - localctx = CParser.External_declarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 2, self.RULE_external_declaration) - self._la = 0 # Token type - try: - self.state = 166 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,4,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 149 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,1,self._ctx) - if la_ == 1: - self.state = 148 - self.declaration_specifiers() + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 4, self.input) - self.state = 151 - self.declarator() - self.state = 155 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__2) | (1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9) | (1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36))) != 0) or _la==CParser.IDENTIFIER: - self.state = 152 + raise nvae + + elif (LA3_0 == 37) : + LA3_5 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 5, self.input) + + raise nvae + + elif (LA3_0 == 38) : + LA3_6 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 6, self.input) + + raise nvae + + elif (LA3_0 == 39) : + LA3_7 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 7, self.input) + + raise nvae + + elif (LA3_0 == 40) : + LA3_8 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 8, self.input) + + raise nvae + + elif (LA3_0 == 41) : + LA3_9 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 9, self.input) + + raise nvae + + elif (LA3_0 == 42) : + LA3_10 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 10, self.input) + + raise nvae + + elif ((45 <= LA3_0 <= 46)) : + LA3_11 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 11, self.input) + + raise nvae + + elif (LA3_0 == 48) : + LA3_12 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 12, self.input) + + raise nvae + + elif (LA3_0 == IDENTIFIER) : + LA3_13 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + elif (True) : + alt3 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 13, self.input) + + raise nvae + + elif (LA3_0 == 58) : + LA3_14 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 14, self.input) + + raise nvae + + elif (LA3_0 == 66) and (self.synpred4()): + alt3 = 1 + elif (LA3_0 == 59) : + LA3_16 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 16, self.input) + + raise nvae + + elif (LA3_0 == 60) : + LA3_17 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 17, self.input) + + raise nvae + + elif ((49 <= LA3_0 <= 57) or LA3_0 == 61) : + LA3_18 = self.input.LA(2) + + if (self.synpred4()) : + alt3 = 1 + elif (self.synpred5()) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 18, self.input) + + raise nvae + + elif (LA3_0 == 62) and (self.synpred4()): + alt3 = 1 + elif (LA3_0 == 26) : + alt3 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("114:1: external_declaration options {k=1; } : ( ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition | declaration | macro_statement ( ';' )? );", 3, 0, self.input) + + raise nvae + + if alt3 == 1: + # C.g:119:4: ( ( declaration_specifiers )? declarator ( declaration )* '{' )=> function_definition + self.following.append(self.FOLLOW_function_definition_in_external_declaration113) + self.function_definition() + self.following.pop() + if self.failed: + return + + + elif alt3 == 2: + # C.g:120:4: declaration + self.following.append(self.FOLLOW_declaration_in_external_declaration118) self.declaration() - self.state = 157 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 158 - self.match(CParser.T__0) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 160 - self.function_definition() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 161 - self.declaration() - pass + self.following.pop() + if self.failed: + return - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 162 - self.macro_statement() - self.state = 164 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__1: - self.state = 163 - self.match(CParser.T__1) + elif alt3 == 3: + # C.g:121:4: macro_statement ( ';' )? + self.following.append(self.FOLLOW_macro_statement_in_external_declaration123) + self.macro_statement() + self.following.pop() + if self.failed: + return + # C.g:121:20: ( ';' )? + alt2 = 2 + LA2_0 = self.input.LA(1) - pass + if (LA2_0 == 25) : + alt2 = 1 + if alt2 == 1: + # C.g:121:21: ';' + self.match(self.input, 25, self.FOLLOW_25_in_external_declaration126) + if self.failed: + return - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 2, external_declaration_StartIndex) - class Function_definitionContext(ParserRuleContext): + pass - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.ModifierText = '' - self.DeclText = '' - self.LBLine = 0 - self.LBOffset = 0 - self.DeclLine = 0 - self.DeclOffset = 0 - self.d = None # Declaration_specifiersContext - self._declaration_specifiers = None # Declaration_specifiersContext - self._declarator = None # DeclaratorContext - self.a = None # Compound_statementContext - self.b = None # Compound_statementContext + return - def declarator(self): - return self.getTypedRuleContext(CParser.DeclaratorContext,0) + # $ANTLR end external_declaration + class function_definition_return(object): + def __init__(self): + self.start = None + self.stop = None - def compound_statement(self): - return self.getTypedRuleContext(CParser.Compound_statementContext,0) - def declaration_specifiers(self): - return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) + # $ANTLR start function_definition + # C.g:126:1: function_definition : (d= declaration_specifiers )? declarator ( ( declaration )+ a= compound_statement | b= compound_statement ) ; + def function_definition(self, ): + self.function_definition_stack.append(function_definition_scope()) + retval = self.function_definition_return() + retval.start = self.input.LT(1) + function_definition_StartIndex = self.input.index() + d = None + a = None - def declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.DeclarationContext) - else: - return self.getTypedRuleContext(CParser.DeclarationContext,i) + b = None + declarator1 = None - def getRuleIndex(self): - return CParser.RULE_function_definition - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFunction_definition" ): - listener.enterFunction_definition(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFunction_definition" ): - listener.exitFunction_definition(self) + self.function_definition_stack[-1].ModifierText = '' + self.function_definition_stack[-1].DeclText = '' + self.function_definition_stack[-1].LBLine = 0 + self.function_definition_stack[-1].LBOffset = 0 + self.function_definition_stack[-1].DeclLine = 0 + self.function_definition_stack[-1].DeclOffset = 0 + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 3): + return retval + + # C.g:146:2: ( (d= declaration_specifiers )? declarator ( ( declaration )+ a= compound_statement | b= compound_statement ) ) + # C.g:146:4: (d= declaration_specifiers )? declarator ( ( declaration )+ a= compound_statement | b= compound_statement ) + # C.g:146:5: (d= declaration_specifiers )? + alt4 = 2 + LA4 = self.input.LA(1) + if LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33 or LA4 == 34 or LA4 == 35 or LA4 == 36 or LA4 == 37 or LA4 == 38 or LA4 == 39 or LA4 == 40 or LA4 == 41 or LA4 == 42 or LA4 == 45 or LA4 == 46 or LA4 == 48 or LA4 == 49 or LA4 == 50 or LA4 == 51 or LA4 == 52 or LA4 == 53 or LA4 == 54 or LA4 == 55 or LA4 == 56 or LA4 == 57 or LA4 == 61: + alt4 = 1 + elif LA4 == IDENTIFIER: + LA4 = self.input.LA(2) + if LA4 == 66: + alt4 = 1 + elif LA4 == 58: + LA4_21 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 59: + LA4_22 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 60: + LA4_23 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == IDENTIFIER: + LA4_24 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 62: + LA4_25 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 29 or LA4 == 30 or LA4 == 31 or LA4 == 32 or LA4 == 33: + LA4_26 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 34: + LA4_27 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 35: + LA4_28 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 36: + LA4_29 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 37: + LA4_30 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 38: + LA4_31 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 39: + LA4_32 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 40: + LA4_33 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 41: + LA4_34 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 42: + LA4_35 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 45 or LA4 == 46: + LA4_36 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 48: + LA4_37 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 49 or LA4 == 50 or LA4 == 51 or LA4 == 52 or LA4 == 53 or LA4 == 54 or LA4 == 55 or LA4 == 56 or LA4 == 57 or LA4 == 61: + LA4_38 = self.input.LA(3) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 58: + LA4_14 = self.input.LA(2) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 59: + LA4_16 = self.input.LA(2) + + if (self.synpred7()) : + alt4 = 1 + elif LA4 == 60: + LA4_17 = self.input.LA(2) + + if (self.synpred7()) : + alt4 = 1 + if alt4 == 1: + # C.g:0:0: d= declaration_specifiers + self.following.append(self.FOLLOW_declaration_specifiers_in_function_definition157) + d = self.declaration_specifiers() + self.following.pop() + if self.failed: + return retval + + + + self.following.append(self.FOLLOW_declarator_in_function_definition160) + declarator1 = self.declarator() + self.following.pop() + if self.failed: + return retval + # C.g:147:3: ( ( declaration )+ a= compound_statement | b= compound_statement ) + alt6 = 2 + LA6_0 = self.input.LA(1) + + if (LA6_0 == IDENTIFIER or LA6_0 == 26 or (29 <= LA6_0 <= 42) or (45 <= LA6_0 <= 46) or (48 <= LA6_0 <= 61)) : + alt6 = 1 + elif (LA6_0 == 43) : + alt6 = 2 + else: + if self.backtracking > 0: + self.failed = True + return retval + nvae = NoViableAltException("147:3: ( ( declaration )+ a= compound_statement | b= compound_statement )", 6, 0, self.input) + raise nvae - def function_definition(self): + if alt6 == 1: + # C.g:147:5: ( declaration )+ a= compound_statement + # C.g:147:5: ( declaration )+ + cnt5 = 0 + while True: #loop5 + alt5 = 2 + LA5_0 = self.input.LA(1) - localctx = CParser.Function_definitionContext(self, self._ctx, self.state) - self.enterRule(localctx, 4, self.RULE_function_definition) + if (LA5_0 == IDENTIFIER or LA5_0 == 26 or (29 <= LA5_0 <= 42) or (45 <= LA5_0 <= 46) or (48 <= LA5_0 <= 61)) : + alt5 = 1 - ModifierText = ''; - DeclText = ''; - LBLine = 0; - LBOffset = 0; - DeclLine = 0; - DeclOffset = 0; - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 169 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,5,self._ctx) - if la_ == 1: - self.state = 168 - localctx.d = localctx._declaration_specifiers = self.declaration_specifiers() - - - self.state = 171 - localctx._declarator = self.declarator() - self.state = 180 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__2, CParser.T__5, CParser.T__6, CParser.T__7, CParser.T__8, CParser.T__9, CParser.T__10, CParser.T__11, CParser.T__12, CParser.T__13, CParser.T__14, CParser.T__15, CParser.T__16, CParser.T__17, CParser.T__18, CParser.T__20, CParser.T__21, CParser.T__23, CParser.T__24, CParser.T__25, CParser.T__26, CParser.T__27, CParser.T__28, CParser.T__29, CParser.T__30, CParser.T__31, CParser.T__32, CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__36, CParser.IDENTIFIER]: - self.state = 173 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 172 - self.declaration() - self.state = 175 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__2) | (1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9) | (1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36))) != 0) or _la==CParser.IDENTIFIER): - break - - self.state = 177 - localctx.a = self.compound_statement() - pass - elif token in [CParser.T__0]: - self.state = 179 - localctx.b = self.compound_statement() - pass - else: - raise NoViableAltException(self) + if alt5 == 1: + # C.g:0:0: declaration + self.following.append(self.FOLLOW_declaration_in_function_definition166) + self.declaration() + self.following.pop() + if self.failed: + return retval - - if localctx.d != None: - ModifierText = (None if localctx._declaration_specifiers is None else self._input.getText((localctx._declaration_specifiers.start,localctx._declaration_specifiers.stop))) - else: - ModifierText = '' - DeclText = (None if localctx._declarator is None else self._input.getText((localctx._declarator.start,localctx._declarator.stop))) - DeclLine = (None if localctx._declarator is None else localctx._declarator.start).line - DeclOffset = (None if localctx._declarator is None else localctx._declarator.start).column - if localctx.a != None: - LBLine = (None if localctx.a is None else localctx.a.start).line - LBOffset = (None if localctx.a is None else localctx.a.start).column - else: - LBLine = (None if localctx.b is None else localctx.b.start).line - LBOffset = (None if localctx.b is None else localctx.b.start).column - - self._ctx.stop = self._input.LT(-1) - self.StoreFunctionDefinition(localctx.start.line, localctx.start.column, localctx.stop.line, localctx.stop.column, ModifierText, DeclText, LBLine, LBOffset, DeclLine, DeclOffset) + else: + if cnt5 >= 1: + break #loop5 + + if self.backtracking > 0: + self.failed = True + return retval + + eee = EarlyExitException(5, self.input) + raise eee + + cnt5 += 1 + + + self.following.append(self.FOLLOW_compound_statement_in_function_definition171) + a = self.compound_statement() + self.following.pop() + if self.failed: + return retval + + + elif alt6 == 2: + # C.g:148:5: b= compound_statement + self.following.append(self.FOLLOW_compound_statement_in_function_definition180) + b = self.compound_statement() + self.following.pop() + if self.failed: + return retval + + + + if self.backtracking == 0: + + if d is not None: + self.function_definition_stack[-1].ModifierText = self.input.toString(d.start, d.stop) + else: + self.function_definition_stack[-1].ModifierText = '' + self.function_definition_stack[-1].DeclText = self.input.toString(declarator1.start, declarator1.stop) + self.function_definition_stack[-1].DeclLine = declarator1.start.line + self.function_definition_stack[-1].DeclOffset = declarator1.start.charPositionInLine + if a is not None: + self.function_definition_stack[-1].LBLine = a.start.line + self.function_definition_stack[-1].LBOffset = a.start.charPositionInLine + else: + self.function_definition_stack[-1].LBLine = b.start.line + self.function_definition_stack[-1].LBOffset = b.start.charPositionInLine + + + + + + retval.stop = self.input.LT(-1) + + if self.backtracking == 0: + + self.StoreFunctionDefinition(retval.start.line, retval.start.charPositionInLine, retval.stop.line, retval.stop.charPositionInLine, self.function_definition_stack[-1].ModifierText, self.function_definition_stack[-1].DeclText, self.function_definition_stack[-1].LBLine, self.function_definition_stack[-1].LBOffset, self.function_definition_stack[-1].DeclLine, self.function_definition_stack[-1].DeclOffset) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 3, function_definition_StartIndex) - class Declaration_specifiersContext(ParserRuleContext): + self.function_definition_stack.pop() + pass - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + return retval - def storage_class_specifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Storage_class_specifierContext) - else: - return self.getTypedRuleContext(CParser.Storage_class_specifierContext,i) + # $ANTLR end function_definition - def type_specifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Type_specifierContext) - else: - return self.getTypedRuleContext(CParser.Type_specifierContext,i) + # $ANTLR start declaration + # C.g:166:1: declaration : (a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' | s= declaration_specifiers (t= init_declarator_list )? e= ';' ); + def declaration(self, ): + declaration_StartIndex = self.input.index() + a = None + d = None + e = None + b = None + + c = None + + s = None + + t = None - def type_qualifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Type_qualifierContext) - else: - return self.getTypedRuleContext(CParser.Type_qualifierContext,i) + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 4): + return + + # C.g:167:2: (a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' | s= declaration_specifiers (t= init_declarator_list )? e= ';' ) + alt9 = 2 + LA9_0 = self.input.LA(1) + + if (LA9_0 == 26) : + alt9 = 1 + elif (LA9_0 == IDENTIFIER or (29 <= LA9_0 <= 42) or (45 <= LA9_0 <= 46) or (48 <= LA9_0 <= 61)) : + alt9 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("166:1: declaration : (a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' | s= declaration_specifiers (t= init_declarator_list )? e= ';' );", 9, 0, self.input) + + raise nvae + + if alt9 == 1: + # C.g:167:4: a= 'typedef' (b= declaration_specifiers )? c= init_declarator_list d= ';' + a = self.input.LT(1) + self.match(self.input, 26, self.FOLLOW_26_in_declaration203) + if self.failed: + return + # C.g:167:17: (b= declaration_specifiers )? + alt7 = 2 + LA7 = self.input.LA(1) + if LA7 == 29 or LA7 == 30 or LA7 == 31 or LA7 == 32 or LA7 == 33 or LA7 == 34 or LA7 == 35 or LA7 == 36 or LA7 == 37 or LA7 == 38 or LA7 == 39 or LA7 == 40 or LA7 == 41 or LA7 == 42 or LA7 == 45 or LA7 == 46 or LA7 == 48 or LA7 == 49 or LA7 == 50 or LA7 == 51 or LA7 == 52 or LA7 == 53 or LA7 == 54 or LA7 == 55 or LA7 == 56 or LA7 == 57 or LA7 == 61: + alt7 = 1 + elif LA7 == IDENTIFIER: + LA7_13 = self.input.LA(2) + + if (LA7_13 == 62) : + LA7_21 = self.input.LA(3) + + if (self.synpred10()) : + alt7 = 1 + elif (LA7_13 == IDENTIFIER or (29 <= LA7_13 <= 42) or (45 <= LA7_13 <= 46) or (48 <= LA7_13 <= 61) or LA7_13 == 66) : + alt7 = 1 + elif LA7 == 58: + LA7_14 = self.input.LA(2) + + if (self.synpred10()) : + alt7 = 1 + elif LA7 == 59: + LA7_16 = self.input.LA(2) + + if (self.synpred10()) : + alt7 = 1 + elif LA7 == 60: + LA7_17 = self.input.LA(2) + + if (self.synpred10()) : + alt7 = 1 + if alt7 == 1: + # C.g:0:0: b= declaration_specifiers + self.following.append(self.FOLLOW_declaration_specifiers_in_declaration207) + b = self.declaration_specifiers() + self.following.pop() + if self.failed: + return + + + + self.following.append(self.FOLLOW_init_declarator_list_in_declaration216) + c = self.init_declarator_list() + self.following.pop() + if self.failed: + return + d = self.input.LT(1) + self.match(self.input, 25, self.FOLLOW_25_in_declaration220) + if self.failed: + return + if self.backtracking == 0: + + if b is not None: + self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, self.input.toString(b.start, b.stop), self.input.toString(c.start, c.stop)) + else: + self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, '', self.input.toString(c.start, c.stop)) + + + + + elif alt9 == 2: + # C.g:175:4: s= declaration_specifiers (t= init_declarator_list )? e= ';' + self.following.append(self.FOLLOW_declaration_specifiers_in_declaration234) + s = self.declaration_specifiers() + self.following.pop() + if self.failed: + return + # C.g:175:30: (t= init_declarator_list )? + alt8 = 2 + LA8_0 = self.input.LA(1) + + if (LA8_0 == IDENTIFIER or (58 <= LA8_0 <= 60) or LA8_0 == 62 or LA8_0 == 66) : + alt8 = 1 + if alt8 == 1: + # C.g:0:0: t= init_declarator_list + self.following.append(self.FOLLOW_init_declarator_list_in_declaration238) + t = self.init_declarator_list() + self.following.pop() + if self.failed: + return + + + + e = self.input.LT(1) + self.match(self.input, 25, self.FOLLOW_25_in_declaration243) + if self.failed: + return + if self.backtracking == 0: + + if t is not None: + self.StoreVariableDeclaration(s.start.line, s.start.charPositionInLine, t.start.line, t.start.charPositionInLine, self.input.toString(s.start, s.stop), self.input.toString(t.start, t.stop)) + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 4, declaration_StartIndex) - def getRuleIndex(self): - return CParser.RULE_declaration_specifiers + pass - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDeclaration_specifiers" ): - listener.enterDeclaration_specifiers(self) + return - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDeclaration_specifiers" ): - listener.exitDeclaration_specifiers(self) + # $ANTLR end declaration + class declaration_specifiers_return(object): + def __init__(self): + self.start = None + self.stop = None - def declaration_specifiers(self): + # $ANTLR start declaration_specifiers + # C.g:182:1: declaration_specifiers : ( storage_class_specifier | type_specifier | type_qualifier )+ ; + def declaration_specifiers(self, ): - localctx = CParser.Declaration_specifiersContext(self, self._ctx, self.state) - self.enterRule(localctx, 6, self.RULE_declaration_specifiers) + retval = self.declaration_specifiers_return() + retval.start = self.input.LT(1) + declaration_specifiers_StartIndex = self.input.index() try: - self.enterOuterAlt(localctx, 1) - self.state = 187 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 187 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__5, CParser.T__6, CParser.T__7, CParser.T__8, CParser.T__9]: - self.state = 184 + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 5): + return retval + + # C.g:183:2: ( ( storage_class_specifier | type_specifier | type_qualifier )+ ) + # C.g:183:6: ( storage_class_specifier | type_specifier | type_qualifier )+ + # C.g:183:6: ( storage_class_specifier | type_specifier | type_qualifier )+ + cnt10 = 0 + while True: #loop10 + alt10 = 4 + LA10 = self.input.LA(1) + if LA10 == 58: + LA10_2 = self.input.LA(2) + + if (self.synpred15()) : + alt10 = 3 + + + elif LA10 == 59: + LA10_3 = self.input.LA(2) + + if (self.synpred15()) : + alt10 = 3 + + + elif LA10 == 60: + LA10_4 = self.input.LA(2) + + if (self.synpred15()) : + alt10 = 3 + + + elif LA10 == IDENTIFIER: + LA10_5 = self.input.LA(2) + + if (self.synpred14()) : + alt10 = 2 + + + elif LA10 == 53: + LA10_9 = self.input.LA(2) + + if (self.synpred15()) : + alt10 = 3 + + + elif LA10 == 29 or LA10 == 30 or LA10 == 31 or LA10 == 32 or LA10 == 33: + alt10 = 1 + elif LA10 == 34 or LA10 == 35 or LA10 == 36 or LA10 == 37 or LA10 == 38 or LA10 == 39 or LA10 == 40 or LA10 == 41 or LA10 == 42 or LA10 == 45 or LA10 == 46 or LA10 == 48: + alt10 = 2 + elif LA10 == 49 or LA10 == 50 or LA10 == 51 or LA10 == 52 or LA10 == 54 or LA10 == 55 or LA10 == 56 or LA10 == 57 or LA10 == 61: + alt10 = 3 + + if alt10 == 1: + # C.g:183:10: storage_class_specifier + self.following.append(self.FOLLOW_storage_class_specifier_in_declaration_specifiers264) self.storage_class_specifier() - pass - elif token in [CParser.T__10, CParser.T__11, CParser.T__12, CParser.T__13, CParser.T__14, CParser.T__15, CParser.T__16, CParser.T__17, CParser.T__18, CParser.T__20, CParser.T__21, CParser.T__23, CParser.IDENTIFIER]: - self.state = 185 + self.following.pop() + if self.failed: + return retval + + + elif alt10 == 2: + # C.g:184:7: type_specifier + self.following.append(self.FOLLOW_type_specifier_in_declaration_specifiers272) self.type_specifier() - pass - elif token in [CParser.T__24, CParser.T__25, CParser.T__26, CParser.T__27, CParser.T__28, CParser.T__29, CParser.T__30, CParser.T__31, CParser.T__32, CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__36]: - self.state = 186 + self.following.pop() + if self.failed: + return retval + + + elif alt10 == 3: + # C.g:185:13: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_declaration_specifiers286) self.type_qualifier() - pass + self.following.pop() + if self.failed: + return retval + + else: - raise NoViableAltException(self) + if cnt10 >= 1: + break #loop10 + if self.backtracking > 0: + self.failed = True + return retval - else: - raise NoViableAltException(self) - self.state = 189 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,9,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + eee = EarlyExitException(10, self.input) + raise eee - class DeclarationContext(ParserRuleContext): + cnt10 += 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.a = None # Token - self.b = None # Declaration_specifiersContext - self.c = None # Init_declarator_listContext - self.d = None # Token - self.s = None # Declaration_specifiersContext - self.t = None # Init_declarator_listContext - self.e = None # Token - def init_declarator_list(self): - return self.getTypedRuleContext(CParser.Init_declarator_listContext,0) - def declaration_specifiers(self): - return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) + retval.stop = self.input.LT(-1) - def getRuleIndex(self): - return CParser.RULE_declaration - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDeclaration" ): - listener.enterDeclaration(self) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 5, declaration_specifiers_StartIndex) + + pass - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDeclaration" ): - listener.exitDeclaration(self) + return retval + # $ANTLR end declaration_specifiers + class init_declarator_list_return(object): + def __init__(self): + self.start = None + self.stop = None - def declaration(self): - localctx = CParser.DeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 8, self.RULE_declaration) - self._la = 0 # Token type + # $ANTLR start init_declarator_list + # C.g:189:1: init_declarator_list : init_declarator ( ',' init_declarator )* ; + def init_declarator_list(self, ): + + retval = self.init_declarator_list_return() + retval.start = self.input.LT(1) + init_declarator_list_StartIndex = self.input.index() try: - self.state = 206 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__2]: - self.enterOuterAlt(localctx, 1) - self.state = 191 - localctx.a = self.match(CParser.T__2) - self.state = 193 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,10,self._ctx) - if la_ == 1: - self.state = 192 - localctx.b = self.declaration_specifiers() - - - self.state = 195 - localctx.c = self.init_declarator_list() - self.state = 196 - localctx.d = self.match(CParser.T__1) - - if localctx.b is not None: - self.StoreTypedefDefinition(localctx.a.line, localctx.a.column, (0 if localctx.d is None else localctx.d.line), localctx.d.column, (None if localctx.b is None else self._input.getText((localctx.b.start,localctx.b.stop))), (None if localctx.c is None else self._input.getText((localctx.c.start,localctx.c.stop)))) - else: - self.StoreTypedefDefinition(localctx.a.line, localctx.a.column, (0 if localctx.d is None else localctx.d.line), localctx.d.column, '', (None if localctx.c is None else self._input.getText((localctx.c.start,localctx.c.stop)))) - - pass - elif token in [CParser.T__5, CParser.T__6, CParser.T__7, CParser.T__8, CParser.T__9, CParser.T__10, CParser.T__11, CParser.T__12, CParser.T__13, CParser.T__14, CParser.T__15, CParser.T__16, CParser.T__17, CParser.T__18, CParser.T__20, CParser.T__21, CParser.T__23, CParser.T__24, CParser.T__25, CParser.T__26, CParser.T__27, CParser.T__28, CParser.T__29, CParser.T__30, CParser.T__31, CParser.T__32, CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__36, CParser.IDENTIFIER]: - self.enterOuterAlt(localctx, 2) - self.state = 199 - localctx.s = self.declaration_specifiers() - self.state = 201 - self._errHandler.sync(self) - _la = self._input.LA(1) - if ((((_la - 34)) & ~0x3f) == 0 and ((1 << (_la - 34)) & ((1 << (CParser.T__33 - 34)) | (1 << (CParser.T__34 - 34)) | (1 << (CParser.T__35 - 34)) | (1 << (CParser.T__37 - 34)) | (1 << (CParser.T__41 - 34)) | (1 << (CParser.IDENTIFIER - 34)))) != 0): - self.state = 200 - localctx.t = self.init_declarator_list() - - - self.state = 203 - localctx.e = self.match(CParser.T__1) - - if localctx.t is not None: - self.StoreVariableDeclaration((None if localctx.s is None else localctx.s.start).line, (None if localctx.s is None else localctx.s.start).column, (None if localctx.t is None else localctx.t.start).line, (None if localctx.t is None else localctx.t.start).column, (None if localctx.s is None else self._input.getText((localctx.s.start,localctx.s.stop))), (None if localctx.t is None else self._input.getText((localctx.t.start,localctx.t.stop)))) - - pass - else: - raise NoViableAltException(self) + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 6): + return retval + + # C.g:190:2: ( init_declarator ( ',' init_declarator )* ) + # C.g:190:4: init_declarator ( ',' init_declarator )* + self.following.append(self.FOLLOW_init_declarator_in_init_declarator_list308) + self.init_declarator() + self.following.pop() + if self.failed: + return retval + # C.g:190:20: ( ',' init_declarator )* + while True: #loop11 + alt11 = 2 + LA11_0 = self.input.LA(1) + + if (LA11_0 == 27) : + alt11 = 1 + + + if alt11 == 1: + # C.g:190:21: ',' init_declarator + self.match(self.input, 27, self.FOLLOW_27_in_init_declarator_list311) + if self.failed: + return retval + self.following.append(self.FOLLOW_init_declarator_in_init_declarator_list313) + self.init_declarator() + self.following.pop() + if self.failed: + return retval + + + else: + break #loop11 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Init_declarator_listContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def init_declarator(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Init_declaratorContext) - else: - return self.getTypedRuleContext(CParser.Init_declaratorContext,i) + retval.stop = self.input.LT(-1) - def getRuleIndex(self): - return CParser.RULE_init_declarator_list - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInit_declarator_list" ): - listener.enterInit_declarator_list(self) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 6, init_declarator_list_StartIndex) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInit_declarator_list" ): - listener.exitInit_declarator_list(self) + pass + return retval + # $ANTLR end init_declarator_list - def init_declarator_list(self): + # $ANTLR start init_declarator + # C.g:193:1: init_declarator : declarator ( '=' initializer )? ; + def init_declarator(self, ): - localctx = CParser.Init_declarator_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 10, self.RULE_init_declarator_list) - self._la = 0 # Token type + init_declarator_StartIndex = self.input.index() try: - self.enterOuterAlt(localctx, 1) - self.state = 208 - self.init_declarator() - self.state = 213 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__3: - self.state = 209 - self.match(CParser.T__3) - self.state = 210 - self.init_declarator() - self.state = 215 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 7): + return + + # C.g:194:2: ( declarator ( '=' initializer )? ) + # C.g:194:4: declarator ( '=' initializer )? + self.following.append(self.FOLLOW_declarator_in_init_declarator326) + self.declarator() + self.following.pop() + if self.failed: + return + # C.g:194:15: ( '=' initializer )? + alt12 = 2 + LA12_0 = self.input.LA(1) - class Init_declaratorContext(ParserRuleContext): + if (LA12_0 == 28) : + alt12 = 1 + if alt12 == 1: + # C.g:194:16: '=' initializer + self.match(self.input, 28, self.FOLLOW_28_in_init_declarator329) + if self.failed: + return + self.following.append(self.FOLLOW_initializer_in_init_declarator331) + self.initializer() + self.following.pop() + if self.failed: + return - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def declarator(self): - return self.getTypedRuleContext(CParser.DeclaratorContext,0) - def initializer(self): - return self.getTypedRuleContext(CParser.InitializerContext,0) - def getRuleIndex(self): - return CParser.RULE_init_declarator - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInit_declarator" ): - listener.enterInit_declarator(self) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 7, init_declarator_StartIndex) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInit_declarator" ): - listener.exitInit_declarator(self) + pass + return + # $ANTLR end init_declarator - def init_declarator(self): + # $ANTLR start storage_class_specifier + # C.g:197:1: storage_class_specifier : ( 'extern' | 'static' | 'auto' | 'register' | 'STATIC' ); + def storage_class_specifier(self, ): - localctx = CParser.Init_declaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 12, self.RULE_init_declarator) - self._la = 0 # Token type + storage_class_specifier_StartIndex = self.input.index() try: - self.enterOuterAlt(localctx, 1) - self.state = 216 - self.declarator() - self.state = 219 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__4: - self.state = 217 - self.match(CParser.T__4) - self.state = 218 - self.initializer() + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 8): + return + + # C.g:198:2: ( 'extern' | 'static' | 'auto' | 'register' | 'STATIC' ) + # C.g: + if (29 <= self.input.LA(1) <= 33): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_storage_class_specifier0 + ) + raise mse - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Storage_class_specifierContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def getRuleIndex(self): - return CParser.RULE_storage_class_specifier + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 8, storage_class_specifier_StartIndex) + + pass - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStorage_class_specifier" ): - listener.enterStorage_class_specifier(self) + return - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStorage_class_specifier" ): - listener.exitStorage_class_specifier(self) + # $ANTLR end storage_class_specifier + # $ANTLR start type_specifier + # C.g:205:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id ); + def type_specifier(self, ): + type_specifier_StartIndex = self.input.index() + s = None + + e = None - def storage_class_specifier(self): - localctx = CParser.Storage_class_specifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 14, self.RULE_storage_class_specifier) - self._la = 0 # Token type try: - self.enterOuterAlt(localctx, 1) - self.state = 221 - _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 9): + return + + # C.g:206:2: ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id ) + alt13 = 12 + LA13_0 = self.input.LA(1) + + if (LA13_0 == 34) : + alt13 = 1 + elif (LA13_0 == 35) : + alt13 = 2 + elif (LA13_0 == 36) : + alt13 = 3 + elif (LA13_0 == 37) : + alt13 = 4 + elif (LA13_0 == 38) : + alt13 = 5 + elif (LA13_0 == 39) : + alt13 = 6 + elif (LA13_0 == 40) : + alt13 = 7 + elif (LA13_0 == 41) : + alt13 = 8 + elif (LA13_0 == 42) : + alt13 = 9 + elif ((45 <= LA13_0 <= 46)) : + alt13 = 10 + elif (LA13_0 == 48) : + alt13 = 11 + elif (LA13_0 == IDENTIFIER) and (self.synpred34()): + alt13 = 12 + else: + if self.backtracking > 0: + self.failed = True + return - class Type_specifierContext(ParserRuleContext): + nvae = NoViableAltException("205:1: type_specifier : ( 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | s= struct_or_union_specifier | e= enum_specifier | ( IDENTIFIER ( type_qualifier )* declarator )=> type_id );", 13, 0, self.input) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.s = None # Struct_or_union_specifierContext - self.e = None # Enum_specifierContext + raise nvae - def struct_or_union_specifier(self): - return self.getTypedRuleContext(CParser.Struct_or_union_specifierContext,0) + if alt13 == 1: + # C.g:206:4: 'void' + self.match(self.input, 34, self.FOLLOW_34_in_type_specifier376) + if self.failed: + return - def enum_specifier(self): - return self.getTypedRuleContext(CParser.Enum_specifierContext,0) + elif alt13 == 2: + # C.g:207:4: 'char' + self.match(self.input, 35, self.FOLLOW_35_in_type_specifier381) + if self.failed: + return - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + elif alt13 == 3: + # C.g:208:4: 'short' + self.match(self.input, 36, self.FOLLOW_36_in_type_specifier386) + if self.failed: + return - def declarator(self): - return self.getTypedRuleContext(CParser.DeclaratorContext,0) + elif alt13 == 4: + # C.g:209:4: 'int' + self.match(self.input, 37, self.FOLLOW_37_in_type_specifier391) + if self.failed: + return + + + elif alt13 == 5: + # C.g:210:4: 'long' + self.match(self.input, 38, self.FOLLOW_38_in_type_specifier396) + if self.failed: + return + + + elif alt13 == 6: + # C.g:211:4: 'float' + self.match(self.input, 39, self.FOLLOW_39_in_type_specifier401) + if self.failed: + return + + + elif alt13 == 7: + # C.g:212:4: 'double' + self.match(self.input, 40, self.FOLLOW_40_in_type_specifier406) + if self.failed: + return + + + elif alt13 == 8: + # C.g:213:4: 'signed' + self.match(self.input, 41, self.FOLLOW_41_in_type_specifier411) + if self.failed: + return + + + elif alt13 == 9: + # C.g:214:4: 'unsigned' + self.match(self.input, 42, self.FOLLOW_42_in_type_specifier416) + if self.failed: + return + + + elif alt13 == 10: + # C.g:215:4: s= struct_or_union_specifier + self.following.append(self.FOLLOW_struct_or_union_specifier_in_type_specifier423) + s = self.struct_or_union_specifier() + self.following.pop() + if self.failed: + return + if self.backtracking == 0: + + if s.stop is not None: + self.StoreStructUnionDefinition(s.start.line, s.start.charPositionInLine, s.stop.line, s.stop.charPositionInLine, self.input.toString(s.start, s.stop)) - def type_qualifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Type_qualifierContext) - else: - return self.getTypedRuleContext(CParser.Type_qualifierContext,i) - def type_id(self): - return self.getTypedRuleContext(CParser.Type_idContext,0) + elif alt13 == 11: + # C.g:220:4: e= enum_specifier + self.following.append(self.FOLLOW_enum_specifier_in_type_specifier433) + e = self.enum_specifier() + self.following.pop() + if self.failed: + return + if self.backtracking == 0: - def getRuleIndex(self): - return CParser.RULE_type_specifier + if e.stop is not None: + self.StoreEnumerationDefinition(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop)) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterType_specifier" ): - listener.enterType_specifier(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitType_specifier" ): - listener.exitType_specifier(self) + elif alt13 == 12: + # C.g:225:4: ( IDENTIFIER ( type_qualifier )* declarator )=> type_id + self.following.append(self.FOLLOW_type_id_in_type_specifier451) + self.type_id() + self.following.pop() + if self.failed: + return - def type_specifier(self): - localctx = CParser.Type_specifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 16, self.RULE_type_specifier) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 9, type_specifier_StartIndex) + + pass + + return + + # $ANTLR end type_specifier + + + # $ANTLR start type_id + # C.g:228:1: type_id : IDENTIFIER ; + def type_id(self, ): + + type_id_StartIndex = self.input.index() try: - self.state = 247 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,16,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 223 - self.match(CParser.T__10) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 224 - self.match(CParser.T__11) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 225 - self.match(CParser.T__12) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 226 - self.match(CParser.T__13) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 227 - self.match(CParser.T__14) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 228 - self.match(CParser.T__15) - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 229 - self.match(CParser.T__16) - pass - - elif la_ == 8: - self.enterOuterAlt(localctx, 8) - self.state = 230 - self.match(CParser.T__17) - pass - - elif la_ == 9: - self.enterOuterAlt(localctx, 9) - self.state = 231 - self.match(CParser.T__18) - pass - - elif la_ == 10: - self.enterOuterAlt(localctx, 10) - self.state = 232 - localctx.s = self.struct_or_union_specifier() - - if localctx.s.stop is not None: - self.StoreStructUnionDefinition((None if localctx.s is None else localctx.s.start).line, (None if localctx.s is None else localctx.s.start).column, (None if localctx.s is None else localctx.s.stop).line, (None if localctx.s is None else localctx.s.stop).column, (None if localctx.s is None else self._input.getText((localctx.s.start,localctx.s.stop)))) - - pass - - elif la_ == 11: - self.enterOuterAlt(localctx, 11) - self.state = 235 - localctx.e = self.enum_specifier() - - if localctx.e.stop is not None: - self.StoreEnumerationDefinition((None if localctx.e is None else localctx.e.start).line, (None if localctx.e is None else localctx.e.start).column, (None if localctx.e is None else localctx.e.stop).line, (None if localctx.e is None else localctx.e.stop).column, (None if localctx.e is None else self._input.getText((localctx.e.start,localctx.e.stop)))) - - pass - - elif la_ == 12: - self.enterOuterAlt(localctx, 12) - self.state = 238 - self.match(CParser.IDENTIFIER) - self.state = 242 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,15,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 239 - self.type_qualifier() - self.state = 244 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,15,self._ctx) - - self.state = 245 - self.declarator() - pass + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 10): + return - elif la_ == 13: - self.enterOuterAlt(localctx, 13) - self.state = 246 - self.type_id() - pass + # C.g:229:5: ( IDENTIFIER ) + # C.g:229:9: IDENTIFIER + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_type_id467) + if self.failed: + return - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 10, type_id_StartIndex) + + pass + + return + + # $ANTLR end type_id + + class struct_or_union_specifier_return(object): + def __init__(self): + self.start = None + self.stop = None + + - class Type_idContext(ParserRuleContext): + # $ANTLR start struct_or_union_specifier + # C.g:233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER ); + def struct_or_union_specifier(self, ): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + retval = self.struct_or_union_specifier_return() + retval.start = self.input.LT(1) + struct_or_union_specifier_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 11): + return retval + + # C.g:235:2: ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER ) + alt15 = 2 + LA15_0 = self.input.LA(1) + + if ((45 <= LA15_0 <= 46)) : + LA15_1 = self.input.LA(2) + + if (LA15_1 == IDENTIFIER) : + LA15_2 = self.input.LA(3) + + if (LA15_2 == 43) : + alt15 = 1 + elif (LA15_2 == EOF or LA15_2 == IDENTIFIER or LA15_2 == 25 or LA15_2 == 27 or (29 <= LA15_2 <= 42) or (45 <= LA15_2 <= 64) or LA15_2 == 66) : + alt15 = 2 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );", 15, 2, self.input) + + raise nvae + + elif (LA15_1 == 43) : + alt15 = 1 + else: + if self.backtracking > 0: + self.failed = True + return retval - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + nvae = NoViableAltException("233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );", 15, 1, self.input) - def getRuleIndex(self): - return CParser.RULE_type_id + raise nvae - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterType_id" ): - listener.enterType_id(self) + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("233:1: struct_or_union_specifier options {k=3; } : ( struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' | struct_or_union IDENTIFIER );", 15, 0, self.input) + + raise nvae + + if alt15 == 1: + # C.g:235:4: struct_or_union ( IDENTIFIER )? '{' struct_declaration_list '}' + self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier494) + self.struct_or_union() + self.following.pop() + if self.failed: + return retval + # C.g:235:20: ( IDENTIFIER )? + alt14 = 2 + LA14_0 = self.input.LA(1) + + if (LA14_0 == IDENTIFIER) : + alt14 = 1 + if alt14 == 1: + # C.g:0:0: IDENTIFIER + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier496) + if self.failed: + return retval + + + + self.match(self.input, 43, self.FOLLOW_43_in_struct_or_union_specifier499) + if self.failed: + return retval + self.following.append(self.FOLLOW_struct_declaration_list_in_struct_or_union_specifier501) + self.struct_declaration_list() + self.following.pop() + if self.failed: + return retval + self.match(self.input, 44, self.FOLLOW_44_in_struct_or_union_specifier503) + if self.failed: + return retval + + + elif alt15 == 2: + # C.g:236:4: struct_or_union IDENTIFIER + self.following.append(self.FOLLOW_struct_or_union_in_struct_or_union_specifier508) + self.struct_or_union() + self.following.pop() + if self.failed: + return retval + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_struct_or_union_specifier510) + if self.failed: + return retval + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 11, struct_or_union_specifier_StartIndex) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitType_id" ): - listener.exitType_id(self) + pass + return retval + # $ANTLR end struct_or_union_specifier - def type_id(self): + # $ANTLR start struct_or_union + # C.g:239:1: struct_or_union : ( 'struct' | 'union' ); + def struct_or_union(self, ): - localctx = CParser.Type_idContext(self, self._ctx, self.state) - self.enterRule(localctx, 18, self.RULE_type_id) + struct_or_union_StartIndex = self.input.index() try: - self.enterOuterAlt(localctx, 1) - self.state = 249 - self.match(CParser.IDENTIFIER) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 12): + return + + # C.g:240:2: ( 'struct' | 'union' ) + # C.g: + if (45 <= self.input.LA(1) <= 46): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_struct_or_union0 + ) + raise mse + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 12, struct_or_union_StartIndex) + + pass + + return + + # $ANTLR end struct_or_union + + + # $ANTLR start struct_declaration_list + # C.g:244:1: struct_declaration_list : ( struct_declaration )+ ; + def struct_declaration_list(self, ): + + struct_declaration_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 13): + return + + # C.g:245:2: ( ( struct_declaration )+ ) + # C.g:245:4: ( struct_declaration )+ + # C.g:245:4: ( struct_declaration )+ + cnt16 = 0 + while True: #loop16 + alt16 = 2 + LA16_0 = self.input.LA(1) + + if (LA16_0 == IDENTIFIER or (34 <= LA16_0 <= 42) or (45 <= LA16_0 <= 46) or (48 <= LA16_0 <= 61)) : + alt16 = 1 + + + if alt16 == 1: + # C.g:0:0: struct_declaration + self.following.append(self.FOLLOW_struct_declaration_in_struct_declaration_list537) + self.struct_declaration() + self.following.pop() + if self.failed: + return + + + else: + if cnt16 >= 1: + break #loop16 + + if self.backtracking > 0: + self.failed = True + return + + eee = EarlyExitException(16, self.input) + raise eee + + cnt16 += 1 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 13, struct_declaration_list_StartIndex) + + pass + + return + + # $ANTLR end struct_declaration_list + + + # $ANTLR start struct_declaration + # C.g:248:1: struct_declaration : specifier_qualifier_list struct_declarator_list ';' ; + def struct_declaration(self, ): + + struct_declaration_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 14): + return + + # C.g:249:2: ( specifier_qualifier_list struct_declarator_list ';' ) + # C.g:249:4: specifier_qualifier_list struct_declarator_list ';' + self.following.append(self.FOLLOW_specifier_qualifier_list_in_struct_declaration549) + self.specifier_qualifier_list() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_struct_declarator_list_in_struct_declaration551) + self.struct_declarator_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_struct_declaration553) + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 14, struct_declaration_StartIndex) + + pass + + return + + # $ANTLR end struct_declaration + + + # $ANTLR start specifier_qualifier_list + # C.g:252:1: specifier_qualifier_list : ( type_qualifier | type_specifier )+ ; + def specifier_qualifier_list(self, ): + + specifier_qualifier_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 15): + return + + # C.g:253:2: ( ( type_qualifier | type_specifier )+ ) + # C.g:253:4: ( type_qualifier | type_specifier )+ + # C.g:253:4: ( type_qualifier | type_specifier )+ + cnt17 = 0 + while True: #loop17 + alt17 = 3 + LA17 = self.input.LA(1) + if LA17 == 58: + LA17_2 = self.input.LA(2) + + if (self.synpred39()) : + alt17 = 1 + + + elif LA17 == 59: + LA17_3 = self.input.LA(2) + + if (self.synpred39()) : + alt17 = 1 + + + elif LA17 == 60: + LA17_4 = self.input.LA(2) + + if (self.synpred39()) : + alt17 = 1 + + + elif LA17 == IDENTIFIER: + LA17 = self.input.LA(2) + if LA17 == EOF or LA17 == IDENTIFIER or LA17 == 34 or LA17 == 35 or LA17 == 36 or LA17 == 37 or LA17 == 38 or LA17 == 39 or LA17 == 40 or LA17 == 41 or LA17 == 42 or LA17 == 45 or LA17 == 46 or LA17 == 48 or LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57 or LA17 == 58 or LA17 == 59 or LA17 == 60 or LA17 == 61 or LA17 == 63 or LA17 == 66: + alt17 = 2 + elif LA17 == 62: + LA17_94 = self.input.LA(3) + + if (self.synpred40()) : + alt17 = 2 + + + elif LA17 == 47: + LA17_95 = self.input.LA(3) + + if (self.synpred40()) : + alt17 = 2 + + + elif LA17 == 64: + LA17_96 = self.input.LA(3) + + if (self.synpred40()) : + alt17 = 2 + + + + elif LA17 == 49 or LA17 == 50 or LA17 == 51 or LA17 == 52 or LA17 == 53 or LA17 == 54 or LA17 == 55 or LA17 == 56 or LA17 == 57 or LA17 == 61: + alt17 = 1 + elif LA17 == 34 or LA17 == 35 or LA17 == 36 or LA17 == 37 or LA17 == 38 or LA17 == 39 or LA17 == 40 or LA17 == 41 or LA17 == 42 or LA17 == 45 or LA17 == 46 or LA17 == 48: + alt17 = 2 + + if alt17 == 1: + # C.g:253:6: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_specifier_qualifier_list566) + self.type_qualifier() + self.following.pop() + if self.failed: + return + + + elif alt17 == 2: + # C.g:253:23: type_specifier + self.following.append(self.FOLLOW_type_specifier_in_specifier_qualifier_list570) + self.type_specifier() + self.following.pop() + if self.failed: + return + + + else: + if cnt17 >= 1: + break #loop17 + + if self.backtracking > 0: + self.failed = True + return + + eee = EarlyExitException(17, self.input) + raise eee + + cnt17 += 1 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 15, specifier_qualifier_list_StartIndex) + + pass + + return + + # $ANTLR end specifier_qualifier_list + + + # $ANTLR start struct_declarator_list + # C.g:256:1: struct_declarator_list : struct_declarator ( ',' struct_declarator )* ; + def struct_declarator_list(self, ): + + struct_declarator_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 16): + return + + # C.g:257:2: ( struct_declarator ( ',' struct_declarator )* ) + # C.g:257:4: struct_declarator ( ',' struct_declarator )* + self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list584) + self.struct_declarator() + self.following.pop() + if self.failed: + return + # C.g:257:22: ( ',' struct_declarator )* + while True: #loop18 + alt18 = 2 + LA18_0 = self.input.LA(1) + + if (LA18_0 == 27) : + alt18 = 1 + + + if alt18 == 1: + # C.g:257:23: ',' struct_declarator + self.match(self.input, 27, self.FOLLOW_27_in_struct_declarator_list587) + if self.failed: + return + self.following.append(self.FOLLOW_struct_declarator_in_struct_declarator_list589) + self.struct_declarator() + self.following.pop() + if self.failed: + return + + + else: + break #loop18 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 16, struct_declarator_list_StartIndex) + + pass + + return + + # $ANTLR end struct_declarator_list + + + # $ANTLR start struct_declarator + # C.g:260:1: struct_declarator : ( declarator ( ':' constant_expression )? | ':' constant_expression ); + def struct_declarator(self, ): + + struct_declarator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 17): + return + + # C.g:261:2: ( declarator ( ':' constant_expression )? | ':' constant_expression ) + alt20 = 2 + LA20_0 = self.input.LA(1) + + if (LA20_0 == IDENTIFIER or (58 <= LA20_0 <= 60) or LA20_0 == 62 or LA20_0 == 66) : + alt20 = 1 + elif (LA20_0 == 47) : + alt20 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("260:1: struct_declarator : ( declarator ( ':' constant_expression )? | ':' constant_expression );", 20, 0, self.input) + + raise nvae + + if alt20 == 1: + # C.g:261:4: declarator ( ':' constant_expression )? + self.following.append(self.FOLLOW_declarator_in_struct_declarator602) + self.declarator() + self.following.pop() + if self.failed: + return + # C.g:261:15: ( ':' constant_expression )? + alt19 = 2 + LA19_0 = self.input.LA(1) + + if (LA19_0 == 47) : + alt19 = 1 + if alt19 == 1: + # C.g:261:16: ':' constant_expression + self.match(self.input, 47, self.FOLLOW_47_in_struct_declarator605) + if self.failed: + return + self.following.append(self.FOLLOW_constant_expression_in_struct_declarator607) + self.constant_expression() + self.following.pop() + if self.failed: + return + + + + + + elif alt20 == 2: + # C.g:262:4: ':' constant_expression + self.match(self.input, 47, self.FOLLOW_47_in_struct_declarator614) + if self.failed: + return + self.following.append(self.FOLLOW_constant_expression_in_struct_declarator616) + self.constant_expression() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 17, struct_declarator_StartIndex) + + pass + + return + + # $ANTLR end struct_declarator + + class enum_specifier_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start enum_specifier + # C.g:265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER ); + def enum_specifier(self, ): + + retval = self.enum_specifier_return() + retval.start = self.input.LT(1) + enum_specifier_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 18): + return retval + + # C.g:267:2: ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER ) + alt23 = 3 + LA23_0 = self.input.LA(1) + + if (LA23_0 == 48) : + LA23_1 = self.input.LA(2) + + if (LA23_1 == IDENTIFIER) : + LA23_2 = self.input.LA(3) + + if (LA23_2 == 43) : + alt23 = 2 + elif (LA23_2 == EOF or LA23_2 == IDENTIFIER or LA23_2 == 25 or LA23_2 == 27 or (29 <= LA23_2 <= 42) or (45 <= LA23_2 <= 64) or LA23_2 == 66) : + alt23 = 3 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 2, self.input) + + raise nvae + + elif (LA23_1 == 43) : + alt23 = 1 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 1, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("265:1: enum_specifier options {k=3; } : ( 'enum' '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' | 'enum' IDENTIFIER );", 23, 0, self.input) + + raise nvae + + if alt23 == 1: + # C.g:267:4: 'enum' '{' enumerator_list ( ',' )? '}' + self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier634) + if self.failed: + return retval + self.match(self.input, 43, self.FOLLOW_43_in_enum_specifier636) + if self.failed: + return retval + self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier638) + self.enumerator_list() + self.following.pop() + if self.failed: + return retval + # C.g:267:31: ( ',' )? + alt21 = 2 + LA21_0 = self.input.LA(1) + + if (LA21_0 == 27) : + alt21 = 1 + if alt21 == 1: + # C.g:0:0: ',' + self.match(self.input, 27, self.FOLLOW_27_in_enum_specifier640) + if self.failed: + return retval + + + + self.match(self.input, 44, self.FOLLOW_44_in_enum_specifier643) + if self.failed: + return retval + + + elif alt23 == 2: + # C.g:268:4: 'enum' IDENTIFIER '{' enumerator_list ( ',' )? '}' + self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier648) + if self.failed: + return retval + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier650) + if self.failed: + return retval + self.match(self.input, 43, self.FOLLOW_43_in_enum_specifier652) + if self.failed: + return retval + self.following.append(self.FOLLOW_enumerator_list_in_enum_specifier654) + self.enumerator_list() + self.following.pop() + if self.failed: + return retval + # C.g:268:42: ( ',' )? + alt22 = 2 + LA22_0 = self.input.LA(1) + + if (LA22_0 == 27) : + alt22 = 1 + if alt22 == 1: + # C.g:0:0: ',' + self.match(self.input, 27, self.FOLLOW_27_in_enum_specifier656) + if self.failed: + return retval + + + + self.match(self.input, 44, self.FOLLOW_44_in_enum_specifier659) + if self.failed: + return retval + + + elif alt23 == 3: + # C.g:269:4: 'enum' IDENTIFIER + self.match(self.input, 48, self.FOLLOW_48_in_enum_specifier664) + if self.failed: + return retval + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enum_specifier666) + if self.failed: + return retval + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 18, enum_specifier_StartIndex) + + pass + + return retval + + # $ANTLR end enum_specifier + + + # $ANTLR start enumerator_list + # C.g:272:1: enumerator_list : enumerator ( ',' enumerator )* ; + def enumerator_list(self, ): + + enumerator_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 19): + return + + # C.g:273:2: ( enumerator ( ',' enumerator )* ) + # C.g:273:4: enumerator ( ',' enumerator )* + self.following.append(self.FOLLOW_enumerator_in_enumerator_list677) + self.enumerator() + self.following.pop() + if self.failed: + return + # C.g:273:15: ( ',' enumerator )* + while True: #loop24 + alt24 = 2 + LA24_0 = self.input.LA(1) + + if (LA24_0 == 27) : + LA24_1 = self.input.LA(2) + + if (LA24_1 == IDENTIFIER) : + alt24 = 1 + + + + + if alt24 == 1: + # C.g:273:16: ',' enumerator + self.match(self.input, 27, self.FOLLOW_27_in_enumerator_list680) + if self.failed: + return + self.following.append(self.FOLLOW_enumerator_in_enumerator_list682) + self.enumerator() + self.following.pop() + if self.failed: + return + + + else: + break #loop24 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 19, enumerator_list_StartIndex) + + pass + + return + + # $ANTLR end enumerator_list + + + # $ANTLR start enumerator + # C.g:276:1: enumerator : IDENTIFIER ( '=' constant_expression )? ; + def enumerator(self, ): + + enumerator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 20): + return + + # C.g:277:2: ( IDENTIFIER ( '=' constant_expression )? ) + # C.g:277:4: IDENTIFIER ( '=' constant_expression )? + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_enumerator695) + if self.failed: + return + # C.g:277:15: ( '=' constant_expression )? + alt25 = 2 + LA25_0 = self.input.LA(1) + + if (LA25_0 == 28) : + alt25 = 1 + if alt25 == 1: + # C.g:277:16: '=' constant_expression + self.match(self.input, 28, self.FOLLOW_28_in_enumerator698) + if self.failed: + return + self.following.append(self.FOLLOW_constant_expression_in_enumerator700) + self.constant_expression() + self.following.pop() + if self.failed: + return + + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 20, enumerator_StartIndex) + + pass + + return + + # $ANTLR end enumerator + + + # $ANTLR start type_qualifier + # C.g:280:1: type_qualifier : ( 'const' | 'volatile' | 'IN' | 'OUT' | 'OPTIONAL' | 'CONST' | 'UNALIGNED' | 'VOLATILE' | 'GLOBAL_REMOVE_IF_UNREFERENCED' | 'EFIAPI' | 'EFI_BOOTSERVICE' | 'EFI_RUNTIMESERVICE' | 'PACKED' ); + def type_qualifier(self, ): + + type_qualifier_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 21): + return + + # C.g:281:2: ( 'const' | 'volatile' | 'IN' | 'OUT' | 'OPTIONAL' | 'CONST' | 'UNALIGNED' | 'VOLATILE' | 'GLOBAL_REMOVE_IF_UNREFERENCED' | 'EFIAPI' | 'EFI_BOOTSERVICE' | 'EFI_RUNTIMESERVICE' | 'PACKED' ) + # C.g: + if (49 <= self.input.LA(1) <= 61): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_type_qualifier0 + ) + raise mse + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 21, type_qualifier_StartIndex) + + pass + + return + + # $ANTLR end type_qualifier + + class declarator_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start declarator + # C.g:296:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer ); + def declarator(self, ): + + retval = self.declarator_return() + retval.start = self.input.LT(1) + declarator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 22): + return retval + + # C.g:297:2: ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer ) + alt30 = 2 + LA30_0 = self.input.LA(1) + + if (LA30_0 == 66) : + LA30_1 = self.input.LA(2) + + if (self.synpred66()) : + alt30 = 1 + elif (True) : + alt30 = 2 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("296:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer );", 30, 1, self.input) + + raise nvae + + elif (LA30_0 == IDENTIFIER or (58 <= LA30_0 <= 60) or LA30_0 == 62) : + alt30 = 1 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("296:1: declarator : ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator | pointer );", 30, 0, self.input) + + raise nvae + + if alt30 == 1: + # C.g:297:4: ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator + # C.g:297:4: ( pointer )? + alt26 = 2 + LA26_0 = self.input.LA(1) + + if (LA26_0 == 66) : + alt26 = 1 + if alt26 == 1: + # C.g:0:0: pointer + self.following.append(self.FOLLOW_pointer_in_declarator784) + self.pointer() + self.following.pop() + if self.failed: + return retval + + + + # C.g:297:13: ( 'EFIAPI' )? + alt27 = 2 + LA27_0 = self.input.LA(1) + + if (LA27_0 == 58) : + alt27 = 1 + if alt27 == 1: + # C.g:297:14: 'EFIAPI' + self.match(self.input, 58, self.FOLLOW_58_in_declarator788) + if self.failed: + return retval + + + + # C.g:297:25: ( 'EFI_BOOTSERVICE' )? + alt28 = 2 + LA28_0 = self.input.LA(1) + + if (LA28_0 == 59) : + alt28 = 1 + if alt28 == 1: + # C.g:297:26: 'EFI_BOOTSERVICE' + self.match(self.input, 59, self.FOLLOW_59_in_declarator793) + if self.failed: + return retval + + + + # C.g:297:46: ( 'EFI_RUNTIMESERVICE' )? + alt29 = 2 + LA29_0 = self.input.LA(1) + + if (LA29_0 == 60) : + alt29 = 1 + if alt29 == 1: + # C.g:297:47: 'EFI_RUNTIMESERVICE' + self.match(self.input, 60, self.FOLLOW_60_in_declarator798) + if self.failed: + return retval + + + + self.following.append(self.FOLLOW_direct_declarator_in_declarator802) + self.direct_declarator() + self.following.pop() + if self.failed: + return retval + + + elif alt30 == 2: + # C.g:299:4: pointer + self.following.append(self.FOLLOW_pointer_in_declarator808) + self.pointer() + self.following.pop() + if self.failed: + return retval + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 22, declarator_StartIndex) + + pass + + return retval + + # $ANTLR end declarator + + + # $ANTLR start direct_declarator + # C.g:302:1: direct_declarator : ( IDENTIFIER ( declarator_suffix )* | '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ ); + def direct_declarator(self, ): + + direct_declarator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 23): + return + + # C.g:303:2: ( IDENTIFIER ( declarator_suffix )* | '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ ) + alt34 = 2 + LA34_0 = self.input.LA(1) + + if (LA34_0 == IDENTIFIER) : + alt34 = 1 + elif (LA34_0 == 62) : + alt34 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("302:1: direct_declarator : ( IDENTIFIER ( declarator_suffix )* | '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ );", 34, 0, self.input) + + raise nvae + + if alt34 == 1: + # C.g:303:4: IDENTIFIER ( declarator_suffix )* + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_direct_declarator819) + if self.failed: + return + # C.g:303:15: ( declarator_suffix )* + while True: #loop31 + alt31 = 2 + LA31_0 = self.input.LA(1) + + if (LA31_0 == 62) : + LA31 = self.input.LA(2) + if LA31 == 63: + LA31_30 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 58: + LA31_31 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 66: + LA31_32 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 59: + LA31_33 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 60: + LA31_34 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == IDENTIFIER: + LA31_35 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 29 or LA31 == 30 or LA31 == 31 or LA31 == 32 or LA31 == 33: + LA31_37 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 34: + LA31_38 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 35: + LA31_39 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 36: + LA31_40 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 37: + LA31_41 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 38: + LA31_42 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 39: + LA31_43 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 40: + LA31_44 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 41: + LA31_45 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 42: + LA31_46 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 45 or LA31 == 46: + LA31_47 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 48: + LA31_48 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 49 or LA31 == 50 or LA31 == 51 or LA31 == 52 or LA31 == 53 or LA31 == 54 or LA31 == 55 or LA31 == 56 or LA31 == 57 or LA31 == 61: + LA31_49 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + + elif (LA31_0 == 64) : + LA31 = self.input.LA(2) + if LA31 == 65: + LA31_51 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 62: + LA31_52 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == IDENTIFIER: + LA31_53 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == HEX_LITERAL: + LA31_54 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == OCTAL_LITERAL: + LA31_55 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == DECIMAL_LITERAL: + LA31_56 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == CHARACTER_LITERAL: + LA31_57 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == STRING_LITERAL: + LA31_58 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == FLOATING_POINT_LITERAL: + LA31_59 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 72: + LA31_60 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 73: + LA31_61 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 66 or LA31 == 68 or LA31 == 69 or LA31 == 77 or LA31 == 78 or LA31 == 79: + LA31_62 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + elif LA31 == 74: + LA31_63 = self.input.LA(3) + + if (self.synpred67()) : + alt31 = 1 + + + + + + if alt31 == 1: + # C.g:0:0: declarator_suffix + self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator821) + self.declarator_suffix() + self.following.pop() + if self.failed: + return + + + else: + break #loop31 + + + + + elif alt34 == 2: + # C.g:304:4: '(' ( 'EFIAPI' )? declarator ')' ( declarator_suffix )+ + self.match(self.input, 62, self.FOLLOW_62_in_direct_declarator827) + if self.failed: + return + # C.g:304:8: ( 'EFIAPI' )? + alt32 = 2 + LA32_0 = self.input.LA(1) + + if (LA32_0 == 58) : + LA32_1 = self.input.LA(2) + + if (self.synpred69()) : + alt32 = 1 + if alt32 == 1: + # C.g:304:9: 'EFIAPI' + self.match(self.input, 58, self.FOLLOW_58_in_direct_declarator830) + if self.failed: + return + + + + self.following.append(self.FOLLOW_declarator_in_direct_declarator834) + self.declarator() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_direct_declarator836) + if self.failed: + return + # C.g:304:35: ( declarator_suffix )+ + cnt33 = 0 + while True: #loop33 + alt33 = 2 + LA33_0 = self.input.LA(1) + + if (LA33_0 == 62) : + LA33 = self.input.LA(2) + if LA33 == 63: + LA33_30 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 58: + LA33_31 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 66: + LA33_32 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 59: + LA33_33 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 60: + LA33_34 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == IDENTIFIER: + LA33_35 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 29 or LA33 == 30 or LA33 == 31 or LA33 == 32 or LA33 == 33: + LA33_37 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 34: + LA33_38 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 35: + LA33_39 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 36: + LA33_40 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 37: + LA33_41 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 38: + LA33_42 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 39: + LA33_43 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 40: + LA33_44 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 41: + LA33_45 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 42: + LA33_46 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 45 or LA33 == 46: + LA33_47 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 48: + LA33_48 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 49 or LA33 == 50 or LA33 == 51 or LA33 == 52 or LA33 == 53 or LA33 == 54 or LA33 == 55 or LA33 == 56 or LA33 == 57 or LA33 == 61: + LA33_49 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + + elif (LA33_0 == 64) : + LA33 = self.input.LA(2) + if LA33 == 65: + LA33_51 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 62: + LA33_52 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == IDENTIFIER: + LA33_53 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == HEX_LITERAL: + LA33_54 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == OCTAL_LITERAL: + LA33_55 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == DECIMAL_LITERAL: + LA33_56 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == CHARACTER_LITERAL: + LA33_57 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == STRING_LITERAL: + LA33_58 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == FLOATING_POINT_LITERAL: + LA33_59 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 72: + LA33_60 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 73: + LA33_61 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 66 or LA33 == 68 or LA33 == 69 or LA33 == 77 or LA33 == 78 or LA33 == 79: + LA33_62 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + elif LA33 == 74: + LA33_63 = self.input.LA(3) + + if (self.synpred70()) : + alt33 = 1 + + + + + + if alt33 == 1: + # C.g:0:0: declarator_suffix + self.following.append(self.FOLLOW_declarator_suffix_in_direct_declarator838) + self.declarator_suffix() + self.following.pop() + if self.failed: + return + + + else: + if cnt33 >= 1: + break #loop33 + + if self.backtracking > 0: + self.failed = True + return + + eee = EarlyExitException(33, self.input) + raise eee + + cnt33 += 1 + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 23, direct_declarator_StartIndex) + + pass + + return + + # $ANTLR end direct_declarator + + + # $ANTLR start declarator_suffix + # C.g:307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' ); + def declarator_suffix(self, ): + + declarator_suffix_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 24): + return + + # C.g:308:2: ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' ) + alt35 = 5 + LA35_0 = self.input.LA(1) + + if (LA35_0 == 64) : + LA35_1 = self.input.LA(2) + + if (LA35_1 == 65) : + alt35 = 2 + elif ((IDENTIFIER <= LA35_1 <= FLOATING_POINT_LITERAL) or LA35_1 == 62 or LA35_1 == 66 or (68 <= LA35_1 <= 69) or (72 <= LA35_1 <= 74) or (77 <= LA35_1 <= 79)) : + alt35 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 1, self.input) + + raise nvae + + elif (LA35_0 == 62) : + LA35 = self.input.LA(2) + if LA35 == 63: + alt35 = 5 + elif LA35 == 29 or LA35 == 30 or LA35 == 31 or LA35 == 32 or LA35 == 33 or LA35 == 34 or LA35 == 35 or LA35 == 36 or LA35 == 37 or LA35 == 38 or LA35 == 39 or LA35 == 40 or LA35 == 41 or LA35 == 42 or LA35 == 45 or LA35 == 46 or LA35 == 48 or LA35 == 49 or LA35 == 50 or LA35 == 51 or LA35 == 52 or LA35 == 53 or LA35 == 54 or LA35 == 55 or LA35 == 56 or LA35 == 57 or LA35 == 58 or LA35 == 59 or LA35 == 60 or LA35 == 61 or LA35 == 66: + alt35 = 3 + elif LA35 == IDENTIFIER: + LA35_29 = self.input.LA(3) + + if (self.synpred73()) : + alt35 = 3 + elif (self.synpred74()) : + alt35 = 4 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 29, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 2, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("307:1: declarator_suffix : ( '[' constant_expression ']' | '[' ']' | '(' parameter_type_list ')' | '(' identifier_list ')' | '(' ')' );", 35, 0, self.input) + + raise nvae + + if alt35 == 1: + # C.g:308:6: '[' constant_expression ']' + self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix852) + if self.failed: + return + self.following.append(self.FOLLOW_constant_expression_in_declarator_suffix854) + self.constant_expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix856) + if self.failed: + return + + + elif alt35 == 2: + # C.g:309:9: '[' ']' + self.match(self.input, 64, self.FOLLOW_64_in_declarator_suffix866) + if self.failed: + return + self.match(self.input, 65, self.FOLLOW_65_in_declarator_suffix868) + if self.failed: + return + + + elif alt35 == 3: + # C.g:310:9: '(' parameter_type_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_declarator_suffix878) + if self.failed: + return + self.following.append(self.FOLLOW_parameter_type_list_in_declarator_suffix880) + self.parameter_type_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_declarator_suffix882) + if self.failed: + return + + + elif alt35 == 4: + # C.g:311:9: '(' identifier_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_declarator_suffix892) + if self.failed: + return + self.following.append(self.FOLLOW_identifier_list_in_declarator_suffix894) + self.identifier_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_declarator_suffix896) + if self.failed: + return + + + elif alt35 == 5: + # C.g:312:9: '(' ')' + self.match(self.input, 62, self.FOLLOW_62_in_declarator_suffix906) + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_declarator_suffix908) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 24, declarator_suffix_StartIndex) + + pass + + return + + # $ANTLR end declarator_suffix + + + # $ANTLR start pointer + # C.g:315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' ); + def pointer(self, ): + + pointer_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 25): + return + + # C.g:316:2: ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' ) + alt38 = 3 + LA38_0 = self.input.LA(1) + + if (LA38_0 == 66) : + LA38 = self.input.LA(2) + if LA38 == 66: + LA38_2 = self.input.LA(3) + + if (self.synpred78()) : + alt38 = 2 + elif (True) : + alt38 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 2, self.input) + + raise nvae + + elif LA38 == 58: + LA38_3 = self.input.LA(3) + + if (self.synpred77()) : + alt38 = 1 + elif (True) : + alt38 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 3, self.input) + + raise nvae + + elif LA38 == 59: + LA38_4 = self.input.LA(3) + + if (self.synpred77()) : + alt38 = 1 + elif (True) : + alt38 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 4, self.input) + + raise nvae + + elif LA38 == 60: + LA38_5 = self.input.LA(3) + + if (self.synpred77()) : + alt38 = 1 + elif (True) : + alt38 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 5, self.input) + + raise nvae + + elif LA38 == EOF or LA38 == IDENTIFIER or LA38 == 25 or LA38 == 26 or LA38 == 27 or LA38 == 28 or LA38 == 29 or LA38 == 30 or LA38 == 31 or LA38 == 32 or LA38 == 33 or LA38 == 34 or LA38 == 35 or LA38 == 36 or LA38 == 37 or LA38 == 38 or LA38 == 39 or LA38 == 40 or LA38 == 41 or LA38 == 42 or LA38 == 43 or LA38 == 45 or LA38 == 46 or LA38 == 47 or LA38 == 48 or LA38 == 62 or LA38 == 63 or LA38 == 64: + alt38 = 3 + elif LA38 == 53: + LA38_21 = self.input.LA(3) + + if (self.synpred77()) : + alt38 = 1 + elif (True) : + alt38 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 21, self.input) + + raise nvae + + elif LA38 == 49 or LA38 == 50 or LA38 == 51 or LA38 == 52 or LA38 == 54 or LA38 == 55 or LA38 == 56 or LA38 == 57 or LA38 == 61: + LA38_29 = self.input.LA(3) + + if (self.synpred77()) : + alt38 = 1 + elif (True) : + alt38 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 29, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 1, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("315:1: pointer : ( '*' ( type_qualifier )+ ( pointer )? | '*' pointer | '*' );", 38, 0, self.input) + + raise nvae + + if alt38 == 1: + # C.g:316:4: '*' ( type_qualifier )+ ( pointer )? + self.match(self.input, 66, self.FOLLOW_66_in_pointer919) + if self.failed: + return + # C.g:316:8: ( type_qualifier )+ + cnt36 = 0 + while True: #loop36 + alt36 = 2 + LA36 = self.input.LA(1) + if LA36 == 58: + LA36_2 = self.input.LA(2) + + if (self.synpred75()) : + alt36 = 1 + + + elif LA36 == 59: + LA36_3 = self.input.LA(2) + + if (self.synpred75()) : + alt36 = 1 + + + elif LA36 == 60: + LA36_4 = self.input.LA(2) + + if (self.synpred75()) : + alt36 = 1 + + + elif LA36 == 53: + LA36_20 = self.input.LA(2) + + if (self.synpred75()) : + alt36 = 1 + + + elif LA36 == 49 or LA36 == 50 or LA36 == 51 or LA36 == 52 or LA36 == 54 or LA36 == 55 or LA36 == 56 or LA36 == 57 or LA36 == 61: + LA36_28 = self.input.LA(2) + + if (self.synpred75()) : + alt36 = 1 + + + + if alt36 == 1: + # C.g:0:0: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_pointer921) + self.type_qualifier() + self.following.pop() + if self.failed: + return + + + else: + if cnt36 >= 1: + break #loop36 + + if self.backtracking > 0: + self.failed = True + return + + eee = EarlyExitException(36, self.input) + raise eee + + cnt36 += 1 + + + # C.g:316:24: ( pointer )? + alt37 = 2 + LA37_0 = self.input.LA(1) + + if (LA37_0 == 66) : + LA37_1 = self.input.LA(2) + + if (self.synpred76()) : + alt37 = 1 + if alt37 == 1: + # C.g:0:0: pointer + self.following.append(self.FOLLOW_pointer_in_pointer924) + self.pointer() + self.following.pop() + if self.failed: + return + + + + + + elif alt38 == 2: + # C.g:317:4: '*' pointer + self.match(self.input, 66, self.FOLLOW_66_in_pointer930) + if self.failed: + return + self.following.append(self.FOLLOW_pointer_in_pointer932) + self.pointer() + self.following.pop() + if self.failed: + return + + + elif alt38 == 3: + # C.g:318:4: '*' + self.match(self.input, 66, self.FOLLOW_66_in_pointer937) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 25, pointer_StartIndex) + + pass + + return + + # $ANTLR end pointer + + + # $ANTLR start parameter_type_list + # C.g:321:1: parameter_type_list : parameter_list ( ',' ( 'OPTIONAL' )? '...' )? ; + def parameter_type_list(self, ): + + parameter_type_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 26): + return + + # C.g:322:2: ( parameter_list ( ',' ( 'OPTIONAL' )? '...' )? ) + # C.g:322:4: parameter_list ( ',' ( 'OPTIONAL' )? '...' )? + self.following.append(self.FOLLOW_parameter_list_in_parameter_type_list948) + self.parameter_list() + self.following.pop() + if self.failed: + return + # C.g:322:19: ( ',' ( 'OPTIONAL' )? '...' )? + alt40 = 2 + LA40_0 = self.input.LA(1) + + if (LA40_0 == 27) : + alt40 = 1 + if alt40 == 1: + # C.g:322:20: ',' ( 'OPTIONAL' )? '...' + self.match(self.input, 27, self.FOLLOW_27_in_parameter_type_list951) + if self.failed: + return + # C.g:322:24: ( 'OPTIONAL' )? + alt39 = 2 + LA39_0 = self.input.LA(1) + + if (LA39_0 == 53) : + alt39 = 1 + if alt39 == 1: + # C.g:322:25: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_parameter_type_list954) + if self.failed: + return + + + + self.match(self.input, 67, self.FOLLOW_67_in_parameter_type_list958) + if self.failed: + return + + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 26, parameter_type_list_StartIndex) + + pass + + return + + # $ANTLR end parameter_type_list + + + # $ANTLR start parameter_list + # C.g:325:1: parameter_list : parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )* ; + def parameter_list(self, ): + + parameter_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 27): + return + + # C.g:326:2: ( parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )* ) + # C.g:326:4: parameter_declaration ( ',' ( 'OPTIONAL' )? parameter_declaration )* + self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list971) + self.parameter_declaration() + self.following.pop() + if self.failed: + return + # C.g:326:26: ( ',' ( 'OPTIONAL' )? parameter_declaration )* + while True: #loop42 + alt42 = 2 + LA42_0 = self.input.LA(1) + + if (LA42_0 == 27) : + LA42_1 = self.input.LA(2) + + if (LA42_1 == 53) : + LA42_3 = self.input.LA(3) + + if (self.synpred82()) : + alt42 = 1 + + + elif (LA42_1 == IDENTIFIER or (29 <= LA42_1 <= 42) or (45 <= LA42_1 <= 46) or (48 <= LA42_1 <= 52) or (54 <= LA42_1 <= 61) or LA42_1 == 66) : + alt42 = 1 + + + + + if alt42 == 1: + # C.g:326:27: ',' ( 'OPTIONAL' )? parameter_declaration + self.match(self.input, 27, self.FOLLOW_27_in_parameter_list974) + if self.failed: + return + # C.g:326:31: ( 'OPTIONAL' )? + alt41 = 2 + LA41_0 = self.input.LA(1) + + if (LA41_0 == 53) : + LA41_1 = self.input.LA(2) + + if (self.synpred81()) : + alt41 = 1 + if alt41 == 1: + # C.g:326:32: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_parameter_list977) + if self.failed: + return + + + + self.following.append(self.FOLLOW_parameter_declaration_in_parameter_list981) + self.parameter_declaration() + self.following.pop() + if self.failed: + return + + + else: + break #loop42 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 27, parameter_list_StartIndex) + + pass + + return + + # $ANTLR end parameter_list + + + # $ANTLR start parameter_declaration + # C.g:329:1: parameter_declaration : ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER ); + def parameter_declaration(self, ): + + parameter_declaration_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 28): + return + + # C.g:330:2: ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER ) + alt46 = 2 + LA46 = self.input.LA(1) + if LA46 == 29 or LA46 == 30 or LA46 == 31 or LA46 == 32 or LA46 == 33 or LA46 == 34 or LA46 == 35 or LA46 == 36 or LA46 == 37 or LA46 == 38 or LA46 == 39 or LA46 == 40 or LA46 == 41 or LA46 == 42 or LA46 == 45 or LA46 == 46 or LA46 == 48 or LA46 == 49 or LA46 == 50 or LA46 == 51 or LA46 == 52 or LA46 == 53 or LA46 == 54 or LA46 == 55 or LA46 == 56 or LA46 == 57 or LA46 == 58 or LA46 == 59 or LA46 == 60 or LA46 == 61: + alt46 = 1 + elif LA46 == IDENTIFIER: + LA46_13 = self.input.LA(2) + + if (self.synpred86()) : + alt46 = 1 + elif (True) : + alt46 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("329:1: parameter_declaration : ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER );", 46, 13, self.input) + + raise nvae + + elif LA46 == 66: + alt46 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("329:1: parameter_declaration : ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? | ( pointer )* IDENTIFIER );", 46, 0, self.input) + + raise nvae + + if alt46 == 1: + # C.g:330:4: declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? + self.following.append(self.FOLLOW_declaration_specifiers_in_parameter_declaration994) + self.declaration_specifiers() + self.following.pop() + if self.failed: + return + # C.g:330:27: ( declarator | abstract_declarator )* + while True: #loop43 + alt43 = 3 + LA43 = self.input.LA(1) + if LA43 == 66: + LA43_5 = self.input.LA(2) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + elif LA43 == IDENTIFIER or LA43 == 58 or LA43 == 59 or LA43 == 60: + alt43 = 1 + elif LA43 == 62: + LA43 = self.input.LA(2) + if LA43 == 29 or LA43 == 30 or LA43 == 31 or LA43 == 32 or LA43 == 33 or LA43 == 34 or LA43 == 35 or LA43 == 36 or LA43 == 37 or LA43 == 38 or LA43 == 39 or LA43 == 40 or LA43 == 41 or LA43 == 42 or LA43 == 45 or LA43 == 46 or LA43 == 48 or LA43 == 49 or LA43 == 50 or LA43 == 51 or LA43 == 52 or LA43 == 53 or LA43 == 54 or LA43 == 55 or LA43 == 56 or LA43 == 57 or LA43 == 61 or LA43 == 63 or LA43 == 64: + alt43 = 2 + elif LA43 == IDENTIFIER: + LA43_37 = self.input.LA(3) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + elif LA43 == 58: + LA43_38 = self.input.LA(3) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + elif LA43 == 66: + LA43_39 = self.input.LA(3) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + elif LA43 == 59: + LA43_40 = self.input.LA(3) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + elif LA43 == 60: + LA43_41 = self.input.LA(3) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + elif LA43 == 62: + LA43_43 = self.input.LA(3) + + if (self.synpred83()) : + alt43 = 1 + elif (self.synpred84()) : + alt43 = 2 + + + + elif LA43 == 64: + alt43 = 2 + + if alt43 == 1: + # C.g:330:28: declarator + self.following.append(self.FOLLOW_declarator_in_parameter_declaration997) + self.declarator() + self.following.pop() + if self.failed: + return + + + elif alt43 == 2: + # C.g:330:39: abstract_declarator + self.following.append(self.FOLLOW_abstract_declarator_in_parameter_declaration999) + self.abstract_declarator() + self.following.pop() + if self.failed: + return + + + else: + break #loop43 + + + # C.g:330:61: ( 'OPTIONAL' )? + alt44 = 2 + LA44_0 = self.input.LA(1) + + if (LA44_0 == 53) : + alt44 = 1 + if alt44 == 1: + # C.g:330:62: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_parameter_declaration1004) + if self.failed: + return + + + + + + elif alt46 == 2: + # C.g:332:4: ( pointer )* IDENTIFIER + # C.g:332:4: ( pointer )* + while True: #loop45 + alt45 = 2 + LA45_0 = self.input.LA(1) + + if (LA45_0 == 66) : + alt45 = 1 + + + if alt45 == 1: + # C.g:0:0: pointer + self.following.append(self.FOLLOW_pointer_in_parameter_declaration1013) + self.pointer() + self.following.pop() + if self.failed: + return + + + else: + break #loop45 + + + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_parameter_declaration1016) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 28, parameter_declaration_StartIndex) + + pass + + return + + # $ANTLR end parameter_declaration + + + # $ANTLR start identifier_list + # C.g:335:1: identifier_list : IDENTIFIER ( ',' IDENTIFIER )* ; + def identifier_list(self, ): + + identifier_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 29): + return + + # C.g:336:2: ( IDENTIFIER ( ',' IDENTIFIER )* ) + # C.g:336:4: IDENTIFIER ( ',' IDENTIFIER )* + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1027) + if self.failed: + return + # C.g:337:2: ( ',' IDENTIFIER )* + while True: #loop47 + alt47 = 2 + LA47_0 = self.input.LA(1) + + if (LA47_0 == 27) : + alt47 = 1 + + + if alt47 == 1: + # C.g:337:3: ',' IDENTIFIER + self.match(self.input, 27, self.FOLLOW_27_in_identifier_list1031) + if self.failed: + return + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_identifier_list1033) + if self.failed: + return + + + else: + break #loop47 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 29, identifier_list_StartIndex) + + pass + + return + + # $ANTLR end identifier_list + + + # $ANTLR start type_name + # C.g:340:1: type_name : ( specifier_qualifier_list ( abstract_declarator )? | type_id ); + def type_name(self, ): + + type_name_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 30): + return + + # C.g:341:2: ( specifier_qualifier_list ( abstract_declarator )? | type_id ) + alt49 = 2 + LA49_0 = self.input.LA(1) + + if ((34 <= LA49_0 <= 42) or (45 <= LA49_0 <= 46) or (48 <= LA49_0 <= 61)) : + alt49 = 1 + elif (LA49_0 == IDENTIFIER) : + LA49_13 = self.input.LA(2) + + if (self.synpred90()) : + alt49 = 1 + elif (True) : + alt49 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("340:1: type_name : ( specifier_qualifier_list ( abstract_declarator )? | type_id );", 49, 13, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("340:1: type_name : ( specifier_qualifier_list ( abstract_declarator )? | type_id );", 49, 0, self.input) + + raise nvae + + if alt49 == 1: + # C.g:341:4: specifier_qualifier_list ( abstract_declarator )? + self.following.append(self.FOLLOW_specifier_qualifier_list_in_type_name1046) + self.specifier_qualifier_list() + self.following.pop() + if self.failed: + return + # C.g:341:29: ( abstract_declarator )? + alt48 = 2 + LA48_0 = self.input.LA(1) + + if (LA48_0 == 62 or LA48_0 == 64 or LA48_0 == 66) : + alt48 = 1 + if alt48 == 1: + # C.g:0:0: abstract_declarator + self.following.append(self.FOLLOW_abstract_declarator_in_type_name1048) + self.abstract_declarator() + self.following.pop() + if self.failed: + return + + + + + + elif alt49 == 2: + # C.g:342:4: type_id + self.following.append(self.FOLLOW_type_id_in_type_name1054) + self.type_id() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 30, type_name_StartIndex) + + pass + + return + + # $ANTLR end type_name + + + # $ANTLR start abstract_declarator + # C.g:345:1: abstract_declarator : ( pointer ( direct_abstract_declarator )? | direct_abstract_declarator ); + def abstract_declarator(self, ): + + abstract_declarator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 31): + return + + # C.g:346:2: ( pointer ( direct_abstract_declarator )? | direct_abstract_declarator ) + alt51 = 2 + LA51_0 = self.input.LA(1) + + if (LA51_0 == 66) : + alt51 = 1 + elif (LA51_0 == 62 or LA51_0 == 64) : + alt51 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("345:1: abstract_declarator : ( pointer ( direct_abstract_declarator )? | direct_abstract_declarator );", 51, 0, self.input) + + raise nvae + + if alt51 == 1: + # C.g:346:4: pointer ( direct_abstract_declarator )? + self.following.append(self.FOLLOW_pointer_in_abstract_declarator1065) + self.pointer() + self.following.pop() + if self.failed: + return + # C.g:346:12: ( direct_abstract_declarator )? + alt50 = 2 + LA50_0 = self.input.LA(1) + + if (LA50_0 == 62) : + LA50 = self.input.LA(2) + if LA50 == 63: + LA50_12 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 58: + LA50_13 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 66: + LA50_14 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 59: + LA50_15 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 60: + LA50_16 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == IDENTIFIER: + LA50_17 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 62: + LA50_18 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 64: + LA50_19 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 29 or LA50 == 30 or LA50 == 31 or LA50 == 32 or LA50 == 33: + LA50_20 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 34: + LA50_21 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 35: + LA50_22 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 36: + LA50_23 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 37: + LA50_24 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 38: + LA50_25 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 39: + LA50_26 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 40: + LA50_27 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 41: + LA50_28 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 42: + LA50_29 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 45 or LA50 == 46: + LA50_30 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 48: + LA50_31 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 49 or LA50 == 50 or LA50 == 51 or LA50 == 52 or LA50 == 53 or LA50 == 54 or LA50 == 55 or LA50 == 56 or LA50 == 57 or LA50 == 61: + LA50_32 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif (LA50_0 == 64) : + LA50 = self.input.LA(2) + if LA50 == 65: + LA50_33 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 62: + LA50_34 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == IDENTIFIER: + LA50_35 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == HEX_LITERAL: + LA50_36 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == OCTAL_LITERAL: + LA50_37 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == DECIMAL_LITERAL: + LA50_38 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == CHARACTER_LITERAL: + LA50_39 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == STRING_LITERAL: + LA50_40 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == FLOATING_POINT_LITERAL: + LA50_41 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 72: + LA50_42 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 73: + LA50_43 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 66 or LA50 == 68 or LA50 == 69 or LA50 == 77 or LA50 == 78 or LA50 == 79: + LA50_44 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + elif LA50 == 74: + LA50_45 = self.input.LA(3) + + if (self.synpred91()) : + alt50 = 1 + if alt50 == 1: + # C.g:0:0: direct_abstract_declarator + self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1067) + self.direct_abstract_declarator() + self.following.pop() + if self.failed: + return + + + + + + elif alt51 == 2: + # C.g:347:4: direct_abstract_declarator + self.following.append(self.FOLLOW_direct_abstract_declarator_in_abstract_declarator1073) + self.direct_abstract_declarator() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 31, abstract_declarator_StartIndex) + + pass + + return + + # $ANTLR end abstract_declarator + + + # $ANTLR start direct_abstract_declarator + # C.g:350:1: direct_abstract_declarator : ( '(' abstract_declarator ')' | abstract_declarator_suffix ) ( abstract_declarator_suffix )* ; + def direct_abstract_declarator(self, ): + + direct_abstract_declarator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 32): + return + + # C.g:351:2: ( ( '(' abstract_declarator ')' | abstract_declarator_suffix ) ( abstract_declarator_suffix )* ) + # C.g:351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix ) ( abstract_declarator_suffix )* + # C.g:351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix ) + alt52 = 2 + LA52_0 = self.input.LA(1) + + if (LA52_0 == 62) : + LA52 = self.input.LA(2) + if LA52 == IDENTIFIER or LA52 == 29 or LA52 == 30 or LA52 == 31 or LA52 == 32 or LA52 == 33 or LA52 == 34 or LA52 == 35 or LA52 == 36 or LA52 == 37 or LA52 == 38 or LA52 == 39 or LA52 == 40 or LA52 == 41 or LA52 == 42 or LA52 == 45 or LA52 == 46 or LA52 == 48 or LA52 == 49 or LA52 == 50 or LA52 == 51 or LA52 == 52 or LA52 == 53 or LA52 == 54 or LA52 == 55 or LA52 == 56 or LA52 == 57 or LA52 == 58 or LA52 == 59 or LA52 == 60 or LA52 == 61 or LA52 == 63: + alt52 = 2 + elif LA52 == 66: + LA52_18 = self.input.LA(3) + + if (self.synpred93()) : + alt52 = 1 + elif (True) : + alt52 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 18, self.input) + + raise nvae + + elif LA52 == 62 or LA52 == 64: + alt52 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 1, self.input) + + raise nvae + + elif (LA52_0 == 64) : + alt52 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("351:4: ( '(' abstract_declarator ')' | abstract_declarator_suffix )", 52, 0, self.input) + + raise nvae + + if alt52 == 1: + # C.g:351:6: '(' abstract_declarator ')' + self.match(self.input, 62, self.FOLLOW_62_in_direct_abstract_declarator1086) + if self.failed: + return + self.following.append(self.FOLLOW_abstract_declarator_in_direct_abstract_declarator1088) + self.abstract_declarator() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_direct_abstract_declarator1090) + if self.failed: + return + + + elif alt52 == 2: + # C.g:351:36: abstract_declarator_suffix + self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1094) + self.abstract_declarator_suffix() + self.following.pop() + if self.failed: + return + + + + # C.g:351:65: ( abstract_declarator_suffix )* + while True: #loop53 + alt53 = 2 + LA53_0 = self.input.LA(1) + + if (LA53_0 == 62) : + LA53 = self.input.LA(2) + if LA53 == 63: + LA53_12 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 58: + LA53_13 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 66: + LA53_14 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 59: + LA53_15 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 60: + LA53_16 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == IDENTIFIER: + LA53_17 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 29 or LA53 == 30 or LA53 == 31 or LA53 == 32 or LA53 == 33: + LA53_19 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 34: + LA53_20 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 35: + LA53_21 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 36: + LA53_22 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 37: + LA53_23 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 38: + LA53_24 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 39: + LA53_25 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 40: + LA53_26 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 41: + LA53_27 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 42: + LA53_28 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 45 or LA53 == 46: + LA53_29 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 48: + LA53_30 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 49 or LA53 == 50 or LA53 == 51 or LA53 == 52 or LA53 == 53 or LA53 == 54 or LA53 == 55 or LA53 == 56 or LA53 == 57 or LA53 == 61: + LA53_31 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + + elif (LA53_0 == 64) : + LA53 = self.input.LA(2) + if LA53 == 65: + LA53_33 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 62: + LA53_34 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == IDENTIFIER: + LA53_35 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == HEX_LITERAL: + LA53_36 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == OCTAL_LITERAL: + LA53_37 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == DECIMAL_LITERAL: + LA53_38 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == CHARACTER_LITERAL: + LA53_39 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == STRING_LITERAL: + LA53_40 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == FLOATING_POINT_LITERAL: + LA53_41 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 72: + LA53_42 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 73: + LA53_43 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 66 or LA53 == 68 or LA53 == 69 or LA53 == 77 or LA53 == 78 or LA53 == 79: + LA53_44 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + elif LA53 == 74: + LA53_45 = self.input.LA(3) + + if (self.synpred94()) : + alt53 = 1 + + + + + + if alt53 == 1: + # C.g:0:0: abstract_declarator_suffix + self.following.append(self.FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1098) + self.abstract_declarator_suffix() + self.following.pop() + if self.failed: + return + + + else: + break #loop53 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 32, direct_abstract_declarator_StartIndex) + + pass + + return + + # $ANTLR end direct_abstract_declarator + + + # $ANTLR start abstract_declarator_suffix + # C.g:354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' ); + def abstract_declarator_suffix(self, ): + + abstract_declarator_suffix_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 33): + return + + # C.g:355:2: ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' ) + alt54 = 4 + LA54_0 = self.input.LA(1) + + if (LA54_0 == 64) : + LA54_1 = self.input.LA(2) + + if (LA54_1 == 65) : + alt54 = 1 + elif ((IDENTIFIER <= LA54_1 <= FLOATING_POINT_LITERAL) or LA54_1 == 62 or LA54_1 == 66 or (68 <= LA54_1 <= 69) or (72 <= LA54_1 <= 74) or (77 <= LA54_1 <= 79)) : + alt54 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );", 54, 1, self.input) + + raise nvae + + elif (LA54_0 == 62) : + LA54_2 = self.input.LA(2) + + if (LA54_2 == 63) : + alt54 = 3 + elif (LA54_2 == IDENTIFIER or (29 <= LA54_2 <= 42) or (45 <= LA54_2 <= 46) or (48 <= LA54_2 <= 61) or LA54_2 == 66) : + alt54 = 4 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );", 54, 2, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("354:1: abstract_declarator_suffix : ( '[' ']' | '[' constant_expression ']' | '(' ')' | '(' parameter_type_list ')' );", 54, 0, self.input) + + raise nvae + + if alt54 == 1: + # C.g:355:4: '[' ']' + self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1110) + if self.failed: + return + self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1112) + if self.failed: + return + + + elif alt54 == 2: + # C.g:356:4: '[' constant_expression ']' + self.match(self.input, 64, self.FOLLOW_64_in_abstract_declarator_suffix1117) + if self.failed: + return + self.following.append(self.FOLLOW_constant_expression_in_abstract_declarator_suffix1119) + self.constant_expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 65, self.FOLLOW_65_in_abstract_declarator_suffix1121) + if self.failed: + return + + + elif alt54 == 3: + # C.g:357:4: '(' ')' + self.match(self.input, 62, self.FOLLOW_62_in_abstract_declarator_suffix1126) + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_abstract_declarator_suffix1128) + if self.failed: + return + + + elif alt54 == 4: + # C.g:358:4: '(' parameter_type_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_abstract_declarator_suffix1133) + if self.failed: + return + self.following.append(self.FOLLOW_parameter_type_list_in_abstract_declarator_suffix1135) + self.parameter_type_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_abstract_declarator_suffix1137) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 33, abstract_declarator_suffix_StartIndex) + + pass + + return + + # $ANTLR end abstract_declarator_suffix + + + # $ANTLR start initializer + # C.g:361:1: initializer : ( assignment_expression | '{' initializer_list ( ',' )? '}' ); + def initializer(self, ): + + initializer_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 34): + return + + # C.g:363:2: ( assignment_expression | '{' initializer_list ( ',' )? '}' ) + alt56 = 2 + LA56_0 = self.input.LA(1) + + if ((IDENTIFIER <= LA56_0 <= FLOATING_POINT_LITERAL) or LA56_0 == 62 or LA56_0 == 66 or (68 <= LA56_0 <= 69) or (72 <= LA56_0 <= 74) or (77 <= LA56_0 <= 79)) : + alt56 = 1 + elif (LA56_0 == 43) : + alt56 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("361:1: initializer : ( assignment_expression | '{' initializer_list ( ',' )? '}' );", 56, 0, self.input) + + raise nvae + + if alt56 == 1: + # C.g:363:4: assignment_expression + self.following.append(self.FOLLOW_assignment_expression_in_initializer1150) + self.assignment_expression() + self.following.pop() + if self.failed: + return + + + elif alt56 == 2: + # C.g:364:4: '{' initializer_list ( ',' )? '}' + self.match(self.input, 43, self.FOLLOW_43_in_initializer1155) + if self.failed: + return + self.following.append(self.FOLLOW_initializer_list_in_initializer1157) + self.initializer_list() + self.following.pop() + if self.failed: + return + # C.g:364:25: ( ',' )? + alt55 = 2 + LA55_0 = self.input.LA(1) + + if (LA55_0 == 27) : + alt55 = 1 + if alt55 == 1: + # C.g:0:0: ',' + self.match(self.input, 27, self.FOLLOW_27_in_initializer1159) + if self.failed: + return + + + + self.match(self.input, 44, self.FOLLOW_44_in_initializer1162) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 34, initializer_StartIndex) + + pass + + return + + # $ANTLR end initializer + + + # $ANTLR start initializer_list + # C.g:367:1: initializer_list : initializer ( ',' initializer )* ; + def initializer_list(self, ): + + initializer_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 35): + return + + # C.g:368:2: ( initializer ( ',' initializer )* ) + # C.g:368:4: initializer ( ',' initializer )* + self.following.append(self.FOLLOW_initializer_in_initializer_list1173) + self.initializer() + self.following.pop() + if self.failed: + return + # C.g:368:16: ( ',' initializer )* + while True: #loop57 + alt57 = 2 + LA57_0 = self.input.LA(1) + + if (LA57_0 == 27) : + LA57_1 = self.input.LA(2) + + if ((IDENTIFIER <= LA57_1 <= FLOATING_POINT_LITERAL) or LA57_1 == 43 or LA57_1 == 62 or LA57_1 == 66 or (68 <= LA57_1 <= 69) or (72 <= LA57_1 <= 74) or (77 <= LA57_1 <= 79)) : + alt57 = 1 + + + + + if alt57 == 1: + # C.g:368:17: ',' initializer + self.match(self.input, 27, self.FOLLOW_27_in_initializer_list1176) + if self.failed: + return + self.following.append(self.FOLLOW_initializer_in_initializer_list1178) + self.initializer() + self.following.pop() + if self.failed: + return + + + else: + break #loop57 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 35, initializer_list_StartIndex) + + pass + + return + + # $ANTLR end initializer_list + + class argument_expression_list_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start argument_expression_list + # C.g:373:1: argument_expression_list : assignment_expression ( 'OPTIONAL' )? ( ',' assignment_expression ( 'OPTIONAL' )? )* ; + def argument_expression_list(self, ): + + retval = self.argument_expression_list_return() + retval.start = self.input.LT(1) + argument_expression_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 36): + return retval + + # C.g:374:2: ( assignment_expression ( 'OPTIONAL' )? ( ',' assignment_expression ( 'OPTIONAL' )? )* ) + # C.g:374:6: assignment_expression ( 'OPTIONAL' )? ( ',' assignment_expression ( 'OPTIONAL' )? )* + self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1196) + self.assignment_expression() + self.following.pop() + if self.failed: + return retval + # C.g:374:28: ( 'OPTIONAL' )? + alt58 = 2 + LA58_0 = self.input.LA(1) + + if (LA58_0 == 53) : + alt58 = 1 + if alt58 == 1: + # C.g:374:29: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_argument_expression_list1199) + if self.failed: + return retval + + + + # C.g:374:42: ( ',' assignment_expression ( 'OPTIONAL' )? )* + while True: #loop60 + alt60 = 2 + LA60_0 = self.input.LA(1) + + if (LA60_0 == 27) : + alt60 = 1 + + + if alt60 == 1: + # C.g:374:43: ',' assignment_expression ( 'OPTIONAL' )? + self.match(self.input, 27, self.FOLLOW_27_in_argument_expression_list1204) + if self.failed: + return retval + self.following.append(self.FOLLOW_assignment_expression_in_argument_expression_list1206) + self.assignment_expression() + self.following.pop() + if self.failed: + return retval + # C.g:374:69: ( 'OPTIONAL' )? + alt59 = 2 + LA59_0 = self.input.LA(1) + + if (LA59_0 == 53) : + alt59 = 1 + if alt59 == 1: + # C.g:374:70: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_argument_expression_list1209) + if self.failed: + return retval + + + + + + else: + break #loop60 + + + + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 36, argument_expression_list_StartIndex) + + pass + + return retval + + # $ANTLR end argument_expression_list + + + # $ANTLR start additive_expression + # C.g:377:1: additive_expression : ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )* ; + def additive_expression(self, ): + + additive_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 37): + return + + # C.g:378:2: ( ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )* ) + # C.g:378:4: ( multiplicative_expression ) ( '+' multiplicative_expression | '-' multiplicative_expression )* + # C.g:378:4: ( multiplicative_expression ) + # C.g:378:5: multiplicative_expression + self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1225) + self.multiplicative_expression() + self.following.pop() + if self.failed: + return + + + + # C.g:378:32: ( '+' multiplicative_expression | '-' multiplicative_expression )* + while True: #loop61 + alt61 = 3 + LA61_0 = self.input.LA(1) + + if (LA61_0 == 68) : + alt61 = 1 + elif (LA61_0 == 69) : + alt61 = 2 + + + if alt61 == 1: + # C.g:378:33: '+' multiplicative_expression + self.match(self.input, 68, self.FOLLOW_68_in_additive_expression1229) + if self.failed: + return + self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1231) + self.multiplicative_expression() + self.following.pop() + if self.failed: + return + + + elif alt61 == 2: + # C.g:378:65: '-' multiplicative_expression + self.match(self.input, 69, self.FOLLOW_69_in_additive_expression1235) + if self.failed: + return + self.following.append(self.FOLLOW_multiplicative_expression_in_additive_expression1237) + self.multiplicative_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop61 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 37, additive_expression_StartIndex) + + pass + + return + + # $ANTLR end additive_expression + + + # $ANTLR start multiplicative_expression + # C.g:381:1: multiplicative_expression : ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )* ; + def multiplicative_expression(self, ): + + multiplicative_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 38): + return + + # C.g:382:2: ( ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )* ) + # C.g:382:4: ( cast_expression ) ( '*' cast_expression | '/' cast_expression | '%' cast_expression )* + # C.g:382:4: ( cast_expression ) + # C.g:382:5: cast_expression + self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1251) + self.cast_expression() + self.following.pop() + if self.failed: + return + + + + # C.g:382:22: ( '*' cast_expression | '/' cast_expression | '%' cast_expression )* + while True: #loop62 + alt62 = 4 + LA62 = self.input.LA(1) + if LA62 == 66: + alt62 = 1 + elif LA62 == 70: + alt62 = 2 + elif LA62 == 71: + alt62 = 3 + + if alt62 == 1: + # C.g:382:23: '*' cast_expression + self.match(self.input, 66, self.FOLLOW_66_in_multiplicative_expression1255) + if self.failed: + return + self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1257) + self.cast_expression() + self.following.pop() + if self.failed: + return + + + elif alt62 == 2: + # C.g:382:45: '/' cast_expression + self.match(self.input, 70, self.FOLLOW_70_in_multiplicative_expression1261) + if self.failed: + return + self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1263) + self.cast_expression() + self.following.pop() + if self.failed: + return + + + elif alt62 == 3: + # C.g:382:67: '%' cast_expression + self.match(self.input, 71, self.FOLLOW_71_in_multiplicative_expression1267) + if self.failed: + return + self.following.append(self.FOLLOW_cast_expression_in_multiplicative_expression1269) + self.cast_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop62 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 38, multiplicative_expression_StartIndex) + + pass + + return + + # $ANTLR end multiplicative_expression + + + # $ANTLR start cast_expression + # C.g:385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression ); + def cast_expression(self, ): + + cast_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 39): + return + + # C.g:386:2: ( '(' type_name ')' cast_expression | unary_expression ) + alt63 = 2 + LA63_0 = self.input.LA(1) + + if (LA63_0 == 62) : + LA63 = self.input.LA(2) + if LA63 == 34 or LA63 == 35 or LA63 == 36 or LA63 == 37 or LA63 == 38 or LA63 == 39 or LA63 == 40 or LA63 == 41 or LA63 == 42 or LA63 == 45 or LA63 == 46 or LA63 == 48 or LA63 == 49 or LA63 == 50 or LA63 == 51 or LA63 == 52 or LA63 == 53 or LA63 == 54 or LA63 == 55 or LA63 == 56 or LA63 == 57 or LA63 == 58 or LA63 == 59 or LA63 == 60 or LA63 == 61: + alt63 = 1 + elif LA63 == IDENTIFIER: + LA63_25 = self.input.LA(3) + + if (self.synpred109()) : + alt63 = 1 + elif (True) : + alt63 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 63, 25, self.input) + + raise nvae + + elif LA63 == HEX_LITERAL or LA63 == OCTAL_LITERAL or LA63 == DECIMAL_LITERAL or LA63 == CHARACTER_LITERAL or LA63 == STRING_LITERAL or LA63 == FLOATING_POINT_LITERAL or LA63 == 62 or LA63 == 66 or LA63 == 68 or LA63 == 69 or LA63 == 72 or LA63 == 73 or LA63 == 74 or LA63 == 77 or LA63 == 78 or LA63 == 79: + alt63 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 63, 1, self.input) + + raise nvae + + elif ((IDENTIFIER <= LA63_0 <= FLOATING_POINT_LITERAL) or LA63_0 == 66 or (68 <= LA63_0 <= 69) or (72 <= LA63_0 <= 74) or (77 <= LA63_0 <= 79)) : + alt63 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("385:1: cast_expression : ( '(' type_name ')' cast_expression | unary_expression );", 63, 0, self.input) + + raise nvae + + if alt63 == 1: + # C.g:386:4: '(' type_name ')' cast_expression + self.match(self.input, 62, self.FOLLOW_62_in_cast_expression1282) + if self.failed: + return + self.following.append(self.FOLLOW_type_name_in_cast_expression1284) + self.type_name() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_cast_expression1286) + if self.failed: + return + self.following.append(self.FOLLOW_cast_expression_in_cast_expression1288) + self.cast_expression() + self.following.pop() + if self.failed: + return + + + elif alt63 == 2: + # C.g:387:4: unary_expression + self.following.append(self.FOLLOW_unary_expression_in_cast_expression1293) + self.unary_expression() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 39, cast_expression_StartIndex) + + pass + + return + + # $ANTLR end cast_expression + + + # $ANTLR start unary_expression + # C.g:390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' ); + def unary_expression(self, ): + + unary_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 40): + return + + # C.g:391:2: ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' ) + alt64 = 6 + LA64 = self.input.LA(1) + if LA64 == IDENTIFIER or LA64 == HEX_LITERAL or LA64 == OCTAL_LITERAL or LA64 == DECIMAL_LITERAL or LA64 == CHARACTER_LITERAL or LA64 == STRING_LITERAL or LA64 == FLOATING_POINT_LITERAL or LA64 == 62: + alt64 = 1 + elif LA64 == 72: + alt64 = 2 + elif LA64 == 73: + alt64 = 3 + elif LA64 == 66 or LA64 == 68 or LA64 == 69 or LA64 == 77 or LA64 == 78 or LA64 == 79: + alt64 = 4 + elif LA64 == 74: + LA64_12 = self.input.LA(2) + + if (LA64_12 == 62) : + LA64_13 = self.input.LA(3) + + if (self.synpred114()) : + alt64 = 5 + elif (True) : + alt64 = 6 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );", 64, 13, self.input) + + raise nvae + + elif ((IDENTIFIER <= LA64_12 <= FLOATING_POINT_LITERAL) or LA64_12 == 66 or (68 <= LA64_12 <= 69) or (72 <= LA64_12 <= 74) or (77 <= LA64_12 <= 79)) : + alt64 = 5 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );", 64, 12, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("390:1: unary_expression : ( postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | 'sizeof' unary_expression | 'sizeof' '(' type_name ')' );", 64, 0, self.input) + + raise nvae + + if alt64 == 1: + # C.g:391:4: postfix_expression + self.following.append(self.FOLLOW_postfix_expression_in_unary_expression1304) + self.postfix_expression() + self.following.pop() + if self.failed: + return + + + elif alt64 == 2: + # C.g:392:4: '++' unary_expression + self.match(self.input, 72, self.FOLLOW_72_in_unary_expression1309) + if self.failed: + return + self.following.append(self.FOLLOW_unary_expression_in_unary_expression1311) + self.unary_expression() + self.following.pop() + if self.failed: + return + + + elif alt64 == 3: + # C.g:393:4: '--' unary_expression + self.match(self.input, 73, self.FOLLOW_73_in_unary_expression1316) + if self.failed: + return + self.following.append(self.FOLLOW_unary_expression_in_unary_expression1318) + self.unary_expression() + self.following.pop() + if self.failed: + return + + + elif alt64 == 4: + # C.g:394:4: unary_operator cast_expression + self.following.append(self.FOLLOW_unary_operator_in_unary_expression1323) + self.unary_operator() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_cast_expression_in_unary_expression1325) + self.cast_expression() + self.following.pop() + if self.failed: + return + + + elif alt64 == 5: + # C.g:395:4: 'sizeof' unary_expression + self.match(self.input, 74, self.FOLLOW_74_in_unary_expression1330) + if self.failed: + return + self.following.append(self.FOLLOW_unary_expression_in_unary_expression1332) + self.unary_expression() + self.following.pop() + if self.failed: + return + + + elif alt64 == 6: + # C.g:396:4: 'sizeof' '(' type_name ')' + self.match(self.input, 74, self.FOLLOW_74_in_unary_expression1337) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_unary_expression1339) + if self.failed: + return + self.following.append(self.FOLLOW_type_name_in_unary_expression1341) + self.type_name() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_unary_expression1343) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 40, unary_expression_StartIndex) + + pass + + return + + # $ANTLR end unary_expression + + + # $ANTLR start postfix_expression + # C.g:399:1: postfix_expression : p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )* ; + def postfix_expression(self, ): + self.postfix_expression_stack.append(postfix_expression_scope()) + postfix_expression_StartIndex = self.input.index() + a = None + b = None + x = None + y = None + z = None + p = None + + c = None + + + + self.postfix_expression_stack[-1].FuncCallText = '' + + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 41): + return + + # C.g:406:2: (p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )* ) + # C.g:406:6: p= primary_expression ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )* + self.following.append(self.FOLLOW_primary_expression_in_postfix_expression1367) + p = self.primary_expression() + self.following.pop() + if self.failed: + return + if self.backtracking == 0: + self.postfix_expression_stack[-1].FuncCallText += self.input.toString(p.start, p.stop) + + # C.g:407:9: ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )* + while True: #loop65 + alt65 = 10 + LA65 = self.input.LA(1) + if LA65 == 66: + LA65_1 = self.input.LA(2) + + if (LA65_1 == IDENTIFIER) : + LA65_30 = self.input.LA(3) + + if (self.synpred120()) : + alt65 = 6 + + + + + elif LA65 == 64: + alt65 = 1 + elif LA65 == 62: + LA65 = self.input.LA(2) + if LA65 == 63: + alt65 = 2 + elif LA65 == 29 or LA65 == 30 or LA65 == 31 or LA65 == 32 or LA65 == 33 or LA65 == 34 or LA65 == 35 or LA65 == 36 or LA65 == 37 or LA65 == 38 or LA65 == 39 or LA65 == 40 or LA65 == 41 or LA65 == 42 or LA65 == 45 or LA65 == 46 or LA65 == 48 or LA65 == 49 or LA65 == 50 or LA65 == 51 or LA65 == 52 or LA65 == 53 or LA65 == 54 or LA65 == 55 or LA65 == 56 or LA65 == 57 or LA65 == 58 or LA65 == 59 or LA65 == 60 or LA65 == 61: + alt65 = 4 + elif LA65 == IDENTIFIER: + LA65_55 = self.input.LA(3) + + if (self.synpred117()) : + alt65 = 3 + elif (self.synpred118()) : + alt65 = 4 + + + elif LA65 == 66: + LA65_57 = self.input.LA(3) + + if (self.synpred117()) : + alt65 = 3 + elif (self.synpred118()) : + alt65 = 4 + + + elif LA65 == HEX_LITERAL or LA65 == OCTAL_LITERAL or LA65 == DECIMAL_LITERAL or LA65 == CHARACTER_LITERAL or LA65 == STRING_LITERAL or LA65 == FLOATING_POINT_LITERAL or LA65 == 62 or LA65 == 68 or LA65 == 69 or LA65 == 72 or LA65 == 73 or LA65 == 74 or LA65 == 77 or LA65 == 78 or LA65 == 79: + alt65 = 3 + + elif LA65 == 75: + alt65 = 5 + elif LA65 == 76: + alt65 = 7 + elif LA65 == 72: + alt65 = 8 + elif LA65 == 73: + alt65 = 9 + + if alt65 == 1: + # C.g:407:13: '[' expression ']' + self.match(self.input, 64, self.FOLLOW_64_in_postfix_expression1383) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_postfix_expression1385) + self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 65, self.FOLLOW_65_in_postfix_expression1387) + if self.failed: + return + + + elif alt65 == 2: + # C.g:408:13: '(' a= ')' + self.match(self.input, 62, self.FOLLOW_62_in_postfix_expression1401) + if self.failed: + return + a = self.input.LT(1) + self.match(self.input, 63, self.FOLLOW_63_in_postfix_expression1405) + if self.failed: + return + if self.backtracking == 0: + self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, a.line, a.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, '') + + + + elif alt65 == 3: + # C.g:409:13: '(' c= argument_expression_list b= ')' + self.match(self.input, 62, self.FOLLOW_62_in_postfix_expression1420) + if self.failed: + return + self.following.append(self.FOLLOW_argument_expression_list_in_postfix_expression1424) + c = self.argument_expression_list() + self.following.pop() + if self.failed: + return + b = self.input.LT(1) + self.match(self.input, 63, self.FOLLOW_63_in_postfix_expression1428) + if self.failed: + return + if self.backtracking == 0: + self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, b.line, b.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, self.input.toString(c.start, c.stop)) + + + + elif alt65 == 4: + # C.g:410:13: '(' macro_parameter_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_postfix_expression1444) + if self.failed: + return + self.following.append(self.FOLLOW_macro_parameter_list_in_postfix_expression1446) + self.macro_parameter_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_postfix_expression1448) + if self.failed: + return + + + elif alt65 == 5: + # C.g:411:13: '.' x= IDENTIFIER + self.match(self.input, 75, self.FOLLOW_75_in_postfix_expression1462) + if self.failed: + return + x = self.input.LT(1) + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1466) + if self.failed: + return + if self.backtracking == 0: + self.postfix_expression_stack[-1].FuncCallText += '.' + x.text + + + + elif alt65 == 6: + # C.g:412:13: '*' y= IDENTIFIER + self.match(self.input, 66, self.FOLLOW_66_in_postfix_expression1482) + if self.failed: + return + y = self.input.LT(1) + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1486) + if self.failed: + return + if self.backtracking == 0: + self.postfix_expression_stack[-1].FuncCallText = y.text + + + + elif alt65 == 7: + # C.g:413:13: '->' z= IDENTIFIER + self.match(self.input, 76, self.FOLLOW_76_in_postfix_expression1502) + if self.failed: + return + z = self.input.LT(1) + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_postfix_expression1506) + if self.failed: + return + if self.backtracking == 0: + self.postfix_expression_stack[-1].FuncCallText += '->' + z.text + + + + elif alt65 == 8: + # C.g:414:13: '++' + self.match(self.input, 72, self.FOLLOW_72_in_postfix_expression1522) + if self.failed: + return + + + elif alt65 == 9: + # C.g:415:13: '--' + self.match(self.input, 73, self.FOLLOW_73_in_postfix_expression1536) + if self.failed: + return + + + else: + break #loop65 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 41, postfix_expression_StartIndex) + + self.postfix_expression_stack.pop() + pass + + return + + # $ANTLR end postfix_expression + + + # $ANTLR start macro_parameter_list + # C.g:419:1: macro_parameter_list : parameter_declaration ( ',' parameter_declaration )* ; + def macro_parameter_list(self, ): + + macro_parameter_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 42): + return + + # C.g:420:2: ( parameter_declaration ( ',' parameter_declaration )* ) + # C.g:420:4: parameter_declaration ( ',' parameter_declaration )* + self.following.append(self.FOLLOW_parameter_declaration_in_macro_parameter_list1559) + self.parameter_declaration() + self.following.pop() + if self.failed: + return + # C.g:420:26: ( ',' parameter_declaration )* + while True: #loop66 + alt66 = 2 + LA66_0 = self.input.LA(1) + + if (LA66_0 == 27) : + alt66 = 1 + + + if alt66 == 1: + # C.g:420:27: ',' parameter_declaration + self.match(self.input, 27, self.FOLLOW_27_in_macro_parameter_list1562) + if self.failed: + return + self.following.append(self.FOLLOW_parameter_declaration_in_macro_parameter_list1564) + self.parameter_declaration() + self.following.pop() + if self.failed: + return + + + else: + break #loop66 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 42, macro_parameter_list_StartIndex) + + pass + + return + + # $ANTLR end macro_parameter_list + + + # $ANTLR start unary_operator + # C.g:423:1: unary_operator : ( '&' | '*' | '+' | '-' | '~' | '!' ); + def unary_operator(self, ): + + unary_operator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 43): + return + + # C.g:424:2: ( '&' | '*' | '+' | '-' | '~' | '!' ) + # C.g: + if self.input.LA(1) == 66 or (68 <= self.input.LA(1) <= 69) or (77 <= self.input.LA(1) <= 79): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_unary_operator0 + ) + raise mse + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 43, unary_operator_StartIndex) + + pass + + return + + # $ANTLR end unary_operator + + class primary_expression_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start primary_expression + # C.g:432:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' ); + def primary_expression(self, ): + + retval = self.primary_expression_return() + retval.start = self.input.LT(1) + primary_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 44): + return retval + + # C.g:433:2: ( IDENTIFIER | constant | '(' expression ')' ) + alt67 = 3 + LA67 = self.input.LA(1) + if LA67 == IDENTIFIER: + LA67_1 = self.input.LA(2) + + if (LA67_1 == EOF or LA67_1 == 25 or (27 <= LA67_1 <= 28) or LA67_1 == 44 or LA67_1 == 47 or LA67_1 == 53 or (62 <= LA67_1 <= 66) or (68 <= LA67_1 <= 73) or (75 <= LA67_1 <= 77) or (80 <= LA67_1 <= 102)) : + alt67 = 1 + elif (LA67_1 == IDENTIFIER or LA67_1 == STRING_LITERAL) : + alt67 = 2 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("432:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' );", 67, 1, self.input) + + raise nvae + + elif LA67 == HEX_LITERAL or LA67 == OCTAL_LITERAL or LA67 == DECIMAL_LITERAL or LA67 == CHARACTER_LITERAL or LA67 == STRING_LITERAL or LA67 == FLOATING_POINT_LITERAL: + alt67 = 2 + elif LA67 == 62: + alt67 = 3 + else: + if self.backtracking > 0: + self.failed = True + return retval + + nvae = NoViableAltException("432:1: primary_expression : ( IDENTIFIER | constant | '(' expression ')' );", 67, 0, self.input) + + raise nvae + + if alt67 == 1: + # C.g:433:4: IDENTIFIER + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_primary_expression1613) + if self.failed: + return retval + + + elif alt67 == 2: + # C.g:434:4: constant + self.following.append(self.FOLLOW_constant_in_primary_expression1618) + self.constant() + self.following.pop() + if self.failed: + return retval + + + elif alt67 == 3: + # C.g:435:4: '(' expression ')' + self.match(self.input, 62, self.FOLLOW_62_in_primary_expression1623) + if self.failed: + return retval + self.following.append(self.FOLLOW_expression_in_primary_expression1625) + self.expression() + self.following.pop() + if self.failed: + return retval + self.match(self.input, 63, self.FOLLOW_63_in_primary_expression1627) + if self.failed: + return retval + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 44, primary_expression_StartIndex) + + pass + + return retval + + # $ANTLR end primary_expression + + + # $ANTLR start constant + # C.g:438:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL ); + def constant(self, ): + + constant_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 45): + return + + # C.g:439:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL ) + alt72 = 6 + LA72 = self.input.LA(1) + if LA72 == HEX_LITERAL: + alt72 = 1 + elif LA72 == OCTAL_LITERAL: + alt72 = 2 + elif LA72 == DECIMAL_LITERAL: + alt72 = 3 + elif LA72 == CHARACTER_LITERAL: + alt72 = 4 + elif LA72 == IDENTIFIER or LA72 == STRING_LITERAL: + alt72 = 5 + elif LA72 == FLOATING_POINT_LITERAL: + alt72 = 6 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("438:1: constant : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | CHARACTER_LITERAL | ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* | FLOATING_POINT_LITERAL );", 72, 0, self.input) + + raise nvae + + if alt72 == 1: + # C.g:439:9: HEX_LITERAL + self.match(self.input, HEX_LITERAL, self.FOLLOW_HEX_LITERAL_in_constant1643) + if self.failed: + return + + + elif alt72 == 2: + # C.g:440:9: OCTAL_LITERAL + self.match(self.input, OCTAL_LITERAL, self.FOLLOW_OCTAL_LITERAL_in_constant1653) + if self.failed: + return + + + elif alt72 == 3: + # C.g:441:9: DECIMAL_LITERAL + self.match(self.input, DECIMAL_LITERAL, self.FOLLOW_DECIMAL_LITERAL_in_constant1663) + if self.failed: + return + + + elif alt72 == 4: + # C.g:442:7: CHARACTER_LITERAL + self.match(self.input, CHARACTER_LITERAL, self.FOLLOW_CHARACTER_LITERAL_in_constant1671) + if self.failed: + return + + + elif alt72 == 5: + # C.g:443:7: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ ( IDENTIFIER )* + # C.g:443:7: ( ( IDENTIFIER )* ( STRING_LITERAL )+ )+ + cnt70 = 0 + while True: #loop70 + alt70 = 2 + LA70_0 = self.input.LA(1) + + if (LA70_0 == IDENTIFIER) : + LA70_1 = self.input.LA(2) + + if (LA70_1 == STRING_LITERAL) : + alt70 = 1 + elif (LA70_1 == IDENTIFIER) : + LA70_33 = self.input.LA(3) + + if (self.synpred138()) : + alt70 = 1 + + + + + elif (LA70_0 == STRING_LITERAL) : + alt70 = 1 + + + if alt70 == 1: + # C.g:443:8: ( IDENTIFIER )* ( STRING_LITERAL )+ + # C.g:443:8: ( IDENTIFIER )* + while True: #loop68 + alt68 = 2 + LA68_0 = self.input.LA(1) + + if (LA68_0 == IDENTIFIER) : + alt68 = 1 + + + if alt68 == 1: + # C.g:0:0: IDENTIFIER + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_constant1680) + if self.failed: + return + + + else: + break #loop68 + + + # C.g:443:20: ( STRING_LITERAL )+ + cnt69 = 0 + while True: #loop69 + alt69 = 2 + LA69_0 = self.input.LA(1) + + if (LA69_0 == STRING_LITERAL) : + LA69_31 = self.input.LA(2) + + if (self.synpred137()) : + alt69 = 1 + + + + + if alt69 == 1: + # C.g:0:0: STRING_LITERAL + self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_constant1683) + if self.failed: + return + + + else: + if cnt69 >= 1: + break #loop69 + + if self.backtracking > 0: + self.failed = True + return + + eee = EarlyExitException(69, self.input) + raise eee + + cnt69 += 1 + + + + + else: + if cnt70 >= 1: + break #loop70 + + if self.backtracking > 0: + self.failed = True + return + + eee = EarlyExitException(70, self.input) + raise eee + + cnt70 += 1 + + + # C.g:443:38: ( IDENTIFIER )* + while True: #loop71 + alt71 = 2 + LA71_0 = self.input.LA(1) + + if (LA71_0 == IDENTIFIER) : + alt71 = 1 + + + if alt71 == 1: + # C.g:0:0: IDENTIFIER + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_constant1688) + if self.failed: + return + + + else: + break #loop71 + + + + + elif alt72 == 6: + # C.g:444:9: FLOATING_POINT_LITERAL + self.match(self.input, FLOATING_POINT_LITERAL, self.FOLLOW_FLOATING_POINT_LITERAL_in_constant1699) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 45, constant_StartIndex) + + pass + + return + + # $ANTLR end constant + + class expression_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start expression + # C.g:449:1: expression : assignment_expression ( ',' assignment_expression )* ; + def expression(self, ): + + retval = self.expression_return() + retval.start = self.input.LT(1) + expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 46): + return retval + + # C.g:450:2: ( assignment_expression ( ',' assignment_expression )* ) + # C.g:450:4: assignment_expression ( ',' assignment_expression )* + self.following.append(self.FOLLOW_assignment_expression_in_expression1715) + self.assignment_expression() + self.following.pop() + if self.failed: + return retval + # C.g:450:26: ( ',' assignment_expression )* + while True: #loop73 + alt73 = 2 + LA73_0 = self.input.LA(1) + + if (LA73_0 == 27) : + alt73 = 1 + + + if alt73 == 1: + # C.g:450:27: ',' assignment_expression + self.match(self.input, 27, self.FOLLOW_27_in_expression1718) + if self.failed: + return retval + self.following.append(self.FOLLOW_assignment_expression_in_expression1720) + self.assignment_expression() + self.following.pop() + if self.failed: + return retval + + + else: + break #loop73 + + + + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 46, expression_StartIndex) + + pass + + return retval + + # $ANTLR end expression + + + # $ANTLR start constant_expression + # C.g:453:1: constant_expression : conditional_expression ; + def constant_expression(self, ): + + constant_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 47): + return + + # C.g:454:2: ( conditional_expression ) + # C.g:454:4: conditional_expression + self.following.append(self.FOLLOW_conditional_expression_in_constant_expression1733) + self.conditional_expression() + self.following.pop() + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 47, constant_expression_StartIndex) + + pass + + return + + # $ANTLR end constant_expression + + + # $ANTLR start assignment_expression + # C.g:457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression ); + def assignment_expression(self, ): + + assignment_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 48): + return + + # C.g:458:2: ( lvalue assignment_operator assignment_expression | conditional_expression ) + alt74 = 2 + LA74 = self.input.LA(1) + if LA74 == IDENTIFIER: + LA74 = self.input.LA(2) + if LA74 == 64: + LA74_13 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 13, self.input) + + raise nvae + + elif LA74 == 62: + LA74_14 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 14, self.input) + + raise nvae + + elif LA74 == 75: + LA74_15 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 15, self.input) + + raise nvae + + elif LA74 == 66: + LA74_16 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 16, self.input) + + raise nvae + + elif LA74 == 76: + LA74_17 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 17, self.input) + + raise nvae + + elif LA74 == 72: + LA74_18 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 18, self.input) + + raise nvae + + elif LA74 == 73: + LA74_19 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 19, self.input) + + raise nvae + + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + elif LA74 == STRING_LITERAL: + LA74_21 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 21, self.input) + + raise nvae + + elif LA74 == IDENTIFIER: + LA74_22 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 22, self.input) + + raise nvae + + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 1, self.input) + + raise nvae + + elif LA74 == HEX_LITERAL: + LA74 = self.input.LA(2) + if LA74 == 64: + LA74_44 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 44, self.input) + + raise nvae + + elif LA74 == 62: + LA74_45 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 45, self.input) + + raise nvae + + elif LA74 == 75: + LA74_46 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 46, self.input) + + raise nvae + + elif LA74 == 66: + LA74_47 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 47, self.input) + + raise nvae + + elif LA74 == 76: + LA74_48 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 48, self.input) + + raise nvae + + elif LA74 == 72: + LA74_49 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 49, self.input) + + raise nvae + + elif LA74 == 73: + LA74_50 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 50, self.input) + + raise nvae + + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 2, self.input) + + raise nvae + + elif LA74 == OCTAL_LITERAL: + LA74 = self.input.LA(2) + if LA74 == 64: + LA74_73 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 73, self.input) + + raise nvae + + elif LA74 == 62: + LA74_74 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 74, self.input) + + raise nvae + + elif LA74 == 75: + LA74_75 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 75, self.input) + + raise nvae + + elif LA74 == 66: + LA74_76 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 76, self.input) + + raise nvae + + elif LA74 == 76: + LA74_77 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 77, self.input) + + raise nvae + + elif LA74 == 72: + LA74_78 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 78, self.input) + + raise nvae + + elif LA74 == 73: + LA74_79 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 79, self.input) + + raise nvae + + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 3, self.input) + + raise nvae + + elif LA74 == DECIMAL_LITERAL: + LA74 = self.input.LA(2) + if LA74 == 64: + LA74_102 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 102, self.input) + + raise nvae + + elif LA74 == 62: + LA74_103 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 103, self.input) + + raise nvae + + elif LA74 == 75: + LA74_104 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 104, self.input) + + raise nvae + + elif LA74 == 66: + LA74_105 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 105, self.input) + + raise nvae + + elif LA74 == 76: + LA74_106 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 106, self.input) + + raise nvae + + elif LA74 == 72: + LA74_107 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 107, self.input) + + raise nvae + + elif LA74 == 73: + LA74_108 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 108, self.input) + + raise nvae + + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 4, self.input) + + raise nvae + + elif LA74 == CHARACTER_LITERAL: + LA74 = self.input.LA(2) + if LA74 == 64: + LA74_131 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 131, self.input) + + raise nvae + + elif LA74 == 62: + LA74_132 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 132, self.input) + + raise nvae + + elif LA74 == 75: + LA74_133 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 133, self.input) + + raise nvae + + elif LA74 == 66: + LA74_134 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 134, self.input) + + raise nvae + + elif LA74 == 76: + LA74_135 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 135, self.input) + + raise nvae + + elif LA74 == 72: + LA74_136 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 136, self.input) + + raise nvae + + elif LA74 == 73: + LA74_137 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 137, self.input) + + raise nvae + + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 5, self.input) + + raise nvae + + elif LA74 == STRING_LITERAL: + LA74 = self.input.LA(2) + if LA74 == IDENTIFIER: + LA74_160 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 160, self.input) + + raise nvae + + elif LA74 == 64: + LA74_161 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 161, self.input) + + raise nvae + + elif LA74 == 62: + LA74_162 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 162, self.input) + + raise nvae + + elif LA74 == 75: + LA74_163 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 163, self.input) + + raise nvae + + elif LA74 == 66: + LA74_164 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 164, self.input) + + raise nvae + + elif LA74 == 76: + LA74_165 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 165, self.input) + + raise nvae + + elif LA74 == 72: + LA74_166 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 166, self.input) + + raise nvae + + elif LA74 == 73: + LA74_167 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 167, self.input) + + raise nvae + + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + elif LA74 == STRING_LITERAL: + LA74_189 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 189, self.input) + + raise nvae + + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 6, self.input) + + raise nvae + + elif LA74 == FLOATING_POINT_LITERAL: + LA74 = self.input.LA(2) + if LA74 == 64: + LA74_191 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 191, self.input) + + raise nvae + + elif LA74 == 62: + LA74_192 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 192, self.input) + + raise nvae + + elif LA74 == 75: + LA74_193 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 193, self.input) + + raise nvae + + elif LA74 == 66: + LA74_194 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 194, self.input) + + raise nvae + + elif LA74 == 76: + LA74_195 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 195, self.input) + + raise nvae + + elif LA74 == 72: + LA74_196 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 196, self.input) + + raise nvae + + elif LA74 == 73: + LA74_197 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 197, self.input) + + raise nvae + + elif LA74 == EOF or LA74 == 25 or LA74 == 27 or LA74 == 44 or LA74 == 47 or LA74 == 53 or LA74 == 63 or LA74 == 65 or LA74 == 68 or LA74 == 69 or LA74 == 70 or LA74 == 71 or LA74 == 77 or LA74 == 90 or LA74 == 91 or LA74 == 92 or LA74 == 93 or LA74 == 94 or LA74 == 95 or LA74 == 96 or LA74 == 97 or LA74 == 98 or LA74 == 99 or LA74 == 100 or LA74 == 101 or LA74 == 102: + alt74 = 2 + elif LA74 == 28 or LA74 == 80 or LA74 == 81 or LA74 == 82 or LA74 == 83 or LA74 == 84 or LA74 == 85 or LA74 == 86 or LA74 == 87 or LA74 == 88 or LA74 == 89: + alt74 = 1 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 7, self.input) + + raise nvae + + elif LA74 == 62: + LA74 = self.input.LA(2) + if LA74 == IDENTIFIER: + LA74_220 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 220, self.input) + + raise nvae + + elif LA74 == HEX_LITERAL: + LA74_221 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 221, self.input) + + raise nvae + + elif LA74 == OCTAL_LITERAL: + LA74_222 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 222, self.input) + + raise nvae + + elif LA74 == DECIMAL_LITERAL: + LA74_223 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 223, self.input) + + raise nvae + + elif LA74 == CHARACTER_LITERAL: + LA74_224 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 224, self.input) + + raise nvae + + elif LA74 == STRING_LITERAL: + LA74_225 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 225, self.input) + + raise nvae + + elif LA74 == FLOATING_POINT_LITERAL: + LA74_226 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 226, self.input) + + raise nvae + + elif LA74 == 62: + LA74_227 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 227, self.input) + + raise nvae + + elif LA74 == 72: + LA74_228 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 228, self.input) + + raise nvae + + elif LA74 == 73: + LA74_229 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 229, self.input) + + raise nvae + + elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79: + LA74_230 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 230, self.input) + + raise nvae + + elif LA74 == 74: + LA74_231 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 231, self.input) + + raise nvae + + elif LA74 == 34 or LA74 == 35 or LA74 == 36 or LA74 == 37 or LA74 == 38 or LA74 == 39 or LA74 == 40 or LA74 == 41 or LA74 == 42 or LA74 == 45 or LA74 == 46 or LA74 == 48 or LA74 == 49 or LA74 == 50 or LA74 == 51 or LA74 == 52 or LA74 == 53 or LA74 == 54 or LA74 == 55 or LA74 == 56 or LA74 == 57 or LA74 == 58 or LA74 == 59 or LA74 == 60 or LA74 == 61: + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 8, self.input) + + raise nvae + + elif LA74 == 72: + LA74 = self.input.LA(2) + if LA74 == IDENTIFIER: + LA74_244 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 244, self.input) + + raise nvae + + elif LA74 == HEX_LITERAL: + LA74_245 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 245, self.input) + + raise nvae + + elif LA74 == OCTAL_LITERAL: + LA74_246 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 246, self.input) + + raise nvae + + elif LA74 == DECIMAL_LITERAL: + LA74_247 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 247, self.input) + + raise nvae + + elif LA74 == CHARACTER_LITERAL: + LA74_248 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 248, self.input) + + raise nvae + + elif LA74 == STRING_LITERAL: + LA74_249 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 249, self.input) + + raise nvae + + elif LA74 == FLOATING_POINT_LITERAL: + LA74_250 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 250, self.input) + + raise nvae + + elif LA74 == 62: + LA74_251 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 251, self.input) + + raise nvae + + elif LA74 == 72: + LA74_252 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 252, self.input) + + raise nvae + + elif LA74 == 73: + LA74_253 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 253, self.input) + + raise nvae + + elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79: + LA74_254 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 254, self.input) + + raise nvae + + elif LA74 == 74: + LA74_255 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 255, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 9, self.input) + + raise nvae + + elif LA74 == 73: + LA74 = self.input.LA(2) + if LA74 == IDENTIFIER: + LA74_256 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 256, self.input) + + raise nvae + + elif LA74 == HEX_LITERAL: + LA74_257 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 257, self.input) + + raise nvae + + elif LA74 == OCTAL_LITERAL: + LA74_258 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 258, self.input) + + raise nvae + + elif LA74 == DECIMAL_LITERAL: + LA74_259 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 259, self.input) + + raise nvae + + elif LA74 == CHARACTER_LITERAL: + LA74_260 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 260, self.input) + + raise nvae + + elif LA74 == STRING_LITERAL: + LA74_261 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 261, self.input) + + raise nvae + + elif LA74 == FLOATING_POINT_LITERAL: + LA74_262 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 262, self.input) + + raise nvae + + elif LA74 == 62: + LA74_263 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 263, self.input) + + raise nvae + + elif LA74 == 72: + LA74_264 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 264, self.input) + + raise nvae + + elif LA74 == 73: + LA74_265 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 265, self.input) + + raise nvae + + elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79: + LA74_266 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 266, self.input) + + raise nvae + + elif LA74 == 74: + LA74_267 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 267, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 10, self.input) + + raise nvae + + elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79: + LA74 = self.input.LA(2) + if LA74 == 62: + LA74_268 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 268, self.input) + + raise nvae + + elif LA74 == IDENTIFIER: + LA74_269 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 269, self.input) + + raise nvae + + elif LA74 == HEX_LITERAL: + LA74_270 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 270, self.input) + + raise nvae + + elif LA74 == OCTAL_LITERAL: + LA74_271 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 271, self.input) + + raise nvae + + elif LA74 == DECIMAL_LITERAL: + LA74_272 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 272, self.input) + + raise nvae + + elif LA74 == CHARACTER_LITERAL: + LA74_273 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 273, self.input) + + raise nvae + + elif LA74 == STRING_LITERAL: + LA74_274 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 274, self.input) + + raise nvae + + elif LA74 == FLOATING_POINT_LITERAL: + LA74_275 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 275, self.input) + + raise nvae + + elif LA74 == 72: + LA74_276 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 276, self.input) + + raise nvae + + elif LA74 == 73: + LA74_277 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 277, self.input) + + raise nvae + + elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79: + LA74_278 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 278, self.input) + + raise nvae + + elif LA74 == 74: + LA74_279 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 279, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 11, self.input) + + raise nvae + + elif LA74 == 74: + LA74 = self.input.LA(2) + if LA74 == 62: + LA74_280 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 280, self.input) + + raise nvae + + elif LA74 == IDENTIFIER: + LA74_281 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 281, self.input) + + raise nvae + + elif LA74 == HEX_LITERAL: + LA74_282 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 282, self.input) + + raise nvae + + elif LA74 == OCTAL_LITERAL: + LA74_283 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 283, self.input) + + raise nvae + + elif LA74 == DECIMAL_LITERAL: + LA74_284 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 284, self.input) + + raise nvae + + elif LA74 == CHARACTER_LITERAL: + LA74_285 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 285, self.input) + + raise nvae + + elif LA74 == STRING_LITERAL: + LA74_286 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 286, self.input) + + raise nvae + + elif LA74 == FLOATING_POINT_LITERAL: + LA74_287 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 287, self.input) + + raise nvae + + elif LA74 == 72: + LA74_288 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 288, self.input) + + raise nvae + + elif LA74 == 73: + LA74_289 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 289, self.input) + + raise nvae + + elif LA74 == 66 or LA74 == 68 or LA74 == 69 or LA74 == 77 or LA74 == 78 or LA74 == 79: + LA74_290 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 290, self.input) + + raise nvae + + elif LA74 == 74: + LA74_291 = self.input.LA(3) + + if (self.synpred142()) : + alt74 = 1 + elif (True) : + alt74 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 291, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 12, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("457:1: assignment_expression : ( lvalue assignment_operator assignment_expression | conditional_expression );", 74, 0, self.input) + + raise nvae + + if alt74 == 1: + # C.g:458:4: lvalue assignment_operator assignment_expression + self.following.append(self.FOLLOW_lvalue_in_assignment_expression1744) + self.lvalue() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_assignment_operator_in_assignment_expression1746) + self.assignment_operator() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_assignment_expression_in_assignment_expression1748) + self.assignment_expression() + self.following.pop() + if self.failed: + return + + + elif alt74 == 2: + # C.g:459:4: conditional_expression + self.following.append(self.FOLLOW_conditional_expression_in_assignment_expression1753) + self.conditional_expression() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 48, assignment_expression_StartIndex) + + pass + + return + + # $ANTLR end assignment_expression + + + # $ANTLR start lvalue + # C.g:462:1: lvalue : unary_expression ; + def lvalue(self, ): + + lvalue_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 49): + return + + # C.g:463:2: ( unary_expression ) + # C.g:463:4: unary_expression + self.following.append(self.FOLLOW_unary_expression_in_lvalue1765) + self.unary_expression() + self.following.pop() + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 49, lvalue_StartIndex) + + pass + + return + + # $ANTLR end lvalue + + + # $ANTLR start assignment_operator + # C.g:466:1: assignment_operator : ( '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '&=' | '^=' | '|=' ); + def assignment_operator(self, ): + + assignment_operator_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 50): + return + + # C.g:467:2: ( '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '&=' | '^=' | '|=' ) + # C.g: + if self.input.LA(1) == 28 or (80 <= self.input.LA(1) <= 89): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_assignment_operator0 + ) + raise mse + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 50, assignment_operator_StartIndex) + + pass + + return + + # $ANTLR end assignment_operator + + + # $ANTLR start conditional_expression + # C.g:480:1: conditional_expression : e= logical_or_expression ( '?' expression ':' conditional_expression )? ; + def conditional_expression(self, ): + + conditional_expression_StartIndex = self.input.index() + e = None + + + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 51): + return + + # C.g:481:2: (e= logical_or_expression ( '?' expression ':' conditional_expression )? ) + # C.g:481:4: e= logical_or_expression ( '?' expression ':' conditional_expression )? + self.following.append(self.FOLLOW_logical_or_expression_in_conditional_expression1839) + e = self.logical_or_expression() + self.following.pop() + if self.failed: + return + # C.g:481:28: ( '?' expression ':' conditional_expression )? + alt75 = 2 + LA75_0 = self.input.LA(1) + + if (LA75_0 == 90) : + alt75 = 1 + if alt75 == 1: + # C.g:481:29: '?' expression ':' conditional_expression + self.match(self.input, 90, self.FOLLOW_90_in_conditional_expression1842) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_conditional_expression1844) + self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 47, self.FOLLOW_47_in_conditional_expression1846) + if self.failed: + return + self.following.append(self.FOLLOW_conditional_expression_in_conditional_expression1848) + self.conditional_expression() + self.following.pop() + if self.failed: + return + if self.backtracking == 0: + self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop)) + + + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 51, conditional_expression_StartIndex) + + pass + + return + + # $ANTLR end conditional_expression + + class logical_or_expression_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start logical_or_expression + # C.g:484:1: logical_or_expression : logical_and_expression ( '||' logical_and_expression )* ; + def logical_or_expression(self, ): + + retval = self.logical_or_expression_return() + retval.start = self.input.LT(1) + logical_or_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 52): + return retval + + # C.g:485:2: ( logical_and_expression ( '||' logical_and_expression )* ) + # C.g:485:4: logical_and_expression ( '||' logical_and_expression )* + self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1863) + self.logical_and_expression() + self.following.pop() + if self.failed: + return retval + # C.g:485:27: ( '||' logical_and_expression )* + while True: #loop76 + alt76 = 2 + LA76_0 = self.input.LA(1) + + if (LA76_0 == 91) : + alt76 = 1 + + + if alt76 == 1: + # C.g:485:28: '||' logical_and_expression + self.match(self.input, 91, self.FOLLOW_91_in_logical_or_expression1866) + if self.failed: + return retval + self.following.append(self.FOLLOW_logical_and_expression_in_logical_or_expression1868) + self.logical_and_expression() + self.following.pop() + if self.failed: + return retval + + + else: + break #loop76 + + + + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 52, logical_or_expression_StartIndex) + + pass + + return retval + + # $ANTLR end logical_or_expression + + + # $ANTLR start logical_and_expression + # C.g:488:1: logical_and_expression : inclusive_or_expression ( '&&' inclusive_or_expression )* ; + def logical_and_expression(self, ): + + logical_and_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 53): + return + + # C.g:489:2: ( inclusive_or_expression ( '&&' inclusive_or_expression )* ) + # C.g:489:4: inclusive_or_expression ( '&&' inclusive_or_expression )* + self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1881) + self.inclusive_or_expression() + self.following.pop() + if self.failed: + return + # C.g:489:28: ( '&&' inclusive_or_expression )* + while True: #loop77 + alt77 = 2 + LA77_0 = self.input.LA(1) + + if (LA77_0 == 92) : + alt77 = 1 + + + if alt77 == 1: + # C.g:489:29: '&&' inclusive_or_expression + self.match(self.input, 92, self.FOLLOW_92_in_logical_and_expression1884) + if self.failed: + return + self.following.append(self.FOLLOW_inclusive_or_expression_in_logical_and_expression1886) + self.inclusive_or_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop77 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 53, logical_and_expression_StartIndex) + + pass + + return + + # $ANTLR end logical_and_expression + + + # $ANTLR start inclusive_or_expression + # C.g:492:1: inclusive_or_expression : exclusive_or_expression ( '|' exclusive_or_expression )* ; + def inclusive_or_expression(self, ): + + inclusive_or_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 54): + return + + # C.g:493:2: ( exclusive_or_expression ( '|' exclusive_or_expression )* ) + # C.g:493:4: exclusive_or_expression ( '|' exclusive_or_expression )* + self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1899) + self.exclusive_or_expression() + self.following.pop() + if self.failed: + return + # C.g:493:28: ( '|' exclusive_or_expression )* + while True: #loop78 + alt78 = 2 + LA78_0 = self.input.LA(1) + + if (LA78_0 == 93) : + alt78 = 1 + + + if alt78 == 1: + # C.g:493:29: '|' exclusive_or_expression + self.match(self.input, 93, self.FOLLOW_93_in_inclusive_or_expression1902) + if self.failed: + return + self.following.append(self.FOLLOW_exclusive_or_expression_in_inclusive_or_expression1904) + self.exclusive_or_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop78 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 54, inclusive_or_expression_StartIndex) + + pass + + return + + # $ANTLR end inclusive_or_expression + + + # $ANTLR start exclusive_or_expression + # C.g:496:1: exclusive_or_expression : and_expression ( '^' and_expression )* ; + def exclusive_or_expression(self, ): + + exclusive_or_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 55): + return + + # C.g:497:2: ( and_expression ( '^' and_expression )* ) + # C.g:497:4: and_expression ( '^' and_expression )* + self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1917) + self.and_expression() + self.following.pop() + if self.failed: + return + # C.g:497:19: ( '^' and_expression )* + while True: #loop79 + alt79 = 2 + LA79_0 = self.input.LA(1) + + if (LA79_0 == 94) : + alt79 = 1 + + + if alt79 == 1: + # C.g:497:20: '^' and_expression + self.match(self.input, 94, self.FOLLOW_94_in_exclusive_or_expression1920) + if self.failed: + return + self.following.append(self.FOLLOW_and_expression_in_exclusive_or_expression1922) + self.and_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop79 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 55, exclusive_or_expression_StartIndex) + + pass + + return + + # $ANTLR end exclusive_or_expression + + + # $ANTLR start and_expression + # C.g:500:1: and_expression : equality_expression ( '&' equality_expression )* ; + def and_expression(self, ): + + and_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 56): + return + + # C.g:501:2: ( equality_expression ( '&' equality_expression )* ) + # C.g:501:4: equality_expression ( '&' equality_expression )* + self.following.append(self.FOLLOW_equality_expression_in_and_expression1935) + self.equality_expression() + self.following.pop() + if self.failed: + return + # C.g:501:24: ( '&' equality_expression )* + while True: #loop80 + alt80 = 2 + LA80_0 = self.input.LA(1) + + if (LA80_0 == 77) : + alt80 = 1 + + + if alt80 == 1: + # C.g:501:25: '&' equality_expression + self.match(self.input, 77, self.FOLLOW_77_in_and_expression1938) + if self.failed: + return + self.following.append(self.FOLLOW_equality_expression_in_and_expression1940) + self.equality_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop80 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 56, and_expression_StartIndex) + + pass + + return + + # $ANTLR end and_expression + + + # $ANTLR start equality_expression + # C.g:503:1: equality_expression : relational_expression ( ( '==' | '!=' ) relational_expression )* ; + def equality_expression(self, ): + + equality_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 57): + return + + # C.g:504:2: ( relational_expression ( ( '==' | '!=' ) relational_expression )* ) + # C.g:504:4: relational_expression ( ( '==' | '!=' ) relational_expression )* + self.following.append(self.FOLLOW_relational_expression_in_equality_expression1952) + self.relational_expression() + self.following.pop() + if self.failed: + return + # C.g:504:26: ( ( '==' | '!=' ) relational_expression )* + while True: #loop81 + alt81 = 2 + LA81_0 = self.input.LA(1) + + if ((95 <= LA81_0 <= 96)) : + alt81 = 1 + + + if alt81 == 1: + # C.g:504:27: ( '==' | '!=' ) relational_expression + if (95 <= self.input.LA(1) <= 96): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_equality_expression1955 + ) + raise mse + + + self.following.append(self.FOLLOW_relational_expression_in_equality_expression1961) + self.relational_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop81 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 57, equality_expression_StartIndex) + + pass + + return + + # $ANTLR end equality_expression + + + # $ANTLR start relational_expression + # C.g:507:1: relational_expression : shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* ; + def relational_expression(self, ): + + relational_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 58): + return + + # C.g:508:2: ( shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* ) + # C.g:508:4: shift_expression ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* + self.following.append(self.FOLLOW_shift_expression_in_relational_expression1975) + self.shift_expression() + self.following.pop() + if self.failed: + return + # C.g:508:21: ( ( '<' | '>' | '<=' | '>=' ) shift_expression )* + while True: #loop82 + alt82 = 2 + LA82_0 = self.input.LA(1) + + if ((97 <= LA82_0 <= 100)) : + alt82 = 1 + + + if alt82 == 1: + # C.g:508:22: ( '<' | '>' | '<=' | '>=' ) shift_expression + if (97 <= self.input.LA(1) <= 100): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_relational_expression1978 + ) + raise mse + + + self.following.append(self.FOLLOW_shift_expression_in_relational_expression1988) + self.shift_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop82 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 58, relational_expression_StartIndex) + + pass + + return + + # $ANTLR end relational_expression + + + # $ANTLR start shift_expression + # C.g:511:1: shift_expression : additive_expression ( ( '<<' | '>>' ) additive_expression )* ; + def shift_expression(self, ): + + shift_expression_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 59): + return + + # C.g:512:2: ( additive_expression ( ( '<<' | '>>' ) additive_expression )* ) + # C.g:512:4: additive_expression ( ( '<<' | '>>' ) additive_expression )* + self.following.append(self.FOLLOW_additive_expression_in_shift_expression2001) + self.additive_expression() + self.following.pop() + if self.failed: + return + # C.g:512:24: ( ( '<<' | '>>' ) additive_expression )* + while True: #loop83 + alt83 = 2 + LA83_0 = self.input.LA(1) + + if ((101 <= LA83_0 <= 102)) : + alt83 = 1 + + + if alt83 == 1: + # C.g:512:25: ( '<<' | '>>' ) additive_expression + if (101 <= self.input.LA(1) <= 102): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_shift_expression2004 + ) + raise mse + + + self.following.append(self.FOLLOW_additive_expression_in_shift_expression2010) + self.additive_expression() + self.following.pop() + if self.failed: + return + + + else: + break #loop83 + + + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 59, shift_expression_StartIndex) + + pass + + return + + # $ANTLR end shift_expression + + + # $ANTLR start statement + # C.g:517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration ); + def statement(self, ): + + statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 60): + return + + # C.g:518:2: ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration ) + alt84 = 11 + LA84 = self.input.LA(1) + if LA84 == IDENTIFIER: + LA84 = self.input.LA(2) + if LA84 == 62: + LA84_43 = self.input.LA(3) + + if (self.synpred169()) : + alt84 = 3 + elif (self.synpred173()) : + alt84 = 7 + elif (self.synpred174()) : + alt84 = 8 + elif (True) : + alt84 = 11 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 43, self.input) + + raise nvae + + elif LA84 == 47: + alt84 = 1 + elif LA84 == STRING_LITERAL or LA84 == 27 or LA84 == 28 or LA84 == 64 or LA84 == 68 or LA84 == 69 or LA84 == 70 or LA84 == 71 or LA84 == 72 or LA84 == 73 or LA84 == 75 or LA84 == 76 or LA84 == 77 or LA84 == 80 or LA84 == 81 or LA84 == 82 or LA84 == 83 or LA84 == 84 or LA84 == 85 or LA84 == 86 or LA84 == 87 or LA84 == 88 or LA84 == 89 or LA84 == 90 or LA84 == 91 or LA84 == 92 or LA84 == 93 or LA84 == 94 or LA84 == 95 or LA84 == 96 or LA84 == 97 or LA84 == 98 or LA84 == 99 or LA84 == 100 or LA84 == 101 or LA84 == 102: + alt84 = 3 + elif LA84 == 66: + LA84_47 = self.input.LA(3) + + if (self.synpred169()) : + alt84 = 3 + elif (True) : + alt84 = 11 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 47, self.input) + + raise nvae + + elif LA84 == IDENTIFIER: + LA84_53 = self.input.LA(3) + + if (self.synpred169()) : + alt84 = 3 + elif (True) : + alt84 = 11 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 53, self.input) + + raise nvae + + elif LA84 == 25: + LA84_68 = self.input.LA(3) + + if (self.synpred169()) : + alt84 = 3 + elif (True) : + alt84 = 11 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 68, self.input) + + raise nvae + + elif LA84 == 29 or LA84 == 30 or LA84 == 31 or LA84 == 32 or LA84 == 33 or LA84 == 34 or LA84 == 35 or LA84 == 36 or LA84 == 37 or LA84 == 38 or LA84 == 39 or LA84 == 40 or LA84 == 41 or LA84 == 42 or LA84 == 45 or LA84 == 46 or LA84 == 48 or LA84 == 49 or LA84 == 50 or LA84 == 51 or LA84 == 52 or LA84 == 53 or LA84 == 54 or LA84 == 55 or LA84 == 56 or LA84 == 57 or LA84 == 58 or LA84 == 59 or LA84 == 60 or LA84 == 61: + alt84 = 11 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 1, self.input) + + raise nvae + + elif LA84 == 106 or LA84 == 107: + alt84 = 1 + elif LA84 == 43: + alt84 = 2 + elif LA84 == HEX_LITERAL or LA84 == OCTAL_LITERAL or LA84 == DECIMAL_LITERAL or LA84 == CHARACTER_LITERAL or LA84 == STRING_LITERAL or LA84 == FLOATING_POINT_LITERAL or LA84 == 25 or LA84 == 62 or LA84 == 66 or LA84 == 68 or LA84 == 69 or LA84 == 72 or LA84 == 73 or LA84 == 74 or LA84 == 77 or LA84 == 78 or LA84 == 79: + alt84 = 3 + elif LA84 == 108 or LA84 == 110: + alt84 = 4 + elif LA84 == 111 or LA84 == 112 or LA84 == 113: + alt84 = 5 + elif LA84 == 114 or LA84 == 115 or LA84 == 116 or LA84 == 117: + alt84 = 6 + elif LA84 == 103: + alt84 = 8 + elif LA84 == 104: + alt84 = 9 + elif LA84 == 105: + alt84 = 10 + elif LA84 == 26 or LA84 == 29 or LA84 == 30 or LA84 == 31 or LA84 == 32 or LA84 == 33 or LA84 == 34 or LA84 == 35 or LA84 == 36 or LA84 == 37 or LA84 == 38 or LA84 == 39 or LA84 == 40 or LA84 == 41 or LA84 == 42 or LA84 == 45 or LA84 == 46 or LA84 == 48 or LA84 == 49 or LA84 == 50 or LA84 == 51 or LA84 == 52 or LA84 == 53 or LA84 == 54 or LA84 == 55 or LA84 == 56 or LA84 == 57 or LA84 == 58 or LA84 == 59 or LA84 == 60 or LA84 == 61: + alt84 = 11 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("517:1: statement : ( labeled_statement | compound_statement | expression_statement | selection_statement | iteration_statement | jump_statement | macro_statement | asm2_statement | asm1_statement | asm_statement | declaration );", 84, 0, self.input) + + raise nvae + + if alt84 == 1: + # C.g:518:4: labeled_statement + self.following.append(self.FOLLOW_labeled_statement_in_statement2025) + self.labeled_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 2: + # C.g:519:4: compound_statement + self.following.append(self.FOLLOW_compound_statement_in_statement2030) + self.compound_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 3: + # C.g:520:4: expression_statement + self.following.append(self.FOLLOW_expression_statement_in_statement2035) + self.expression_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 4: + # C.g:521:4: selection_statement + self.following.append(self.FOLLOW_selection_statement_in_statement2040) + self.selection_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 5: + # C.g:522:4: iteration_statement + self.following.append(self.FOLLOW_iteration_statement_in_statement2045) + self.iteration_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 6: + # C.g:523:4: jump_statement + self.following.append(self.FOLLOW_jump_statement_in_statement2050) + self.jump_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 7: + # C.g:524:4: macro_statement + self.following.append(self.FOLLOW_macro_statement_in_statement2055) + self.macro_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 8: + # C.g:525:4: asm2_statement + self.following.append(self.FOLLOW_asm2_statement_in_statement2060) + self.asm2_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 9: + # C.g:526:4: asm1_statement + self.following.append(self.FOLLOW_asm1_statement_in_statement2065) + self.asm1_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 10: + # C.g:527:4: asm_statement + self.following.append(self.FOLLOW_asm_statement_in_statement2070) + self.asm_statement() + self.following.pop() + if self.failed: + return + + + elif alt84 == 11: + # C.g:528:4: declaration + self.following.append(self.FOLLOW_declaration_in_statement2075) + self.declaration() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 60, statement_StartIndex) + + pass + + return + + # $ANTLR end statement + + + # $ANTLR start asm2_statement + # C.g:531:1: asm2_statement : ( '__asm__' )? IDENTIFIER '(' (~ ( ';' ) )* ')' ';' ; + def asm2_statement(self, ): + + asm2_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 61): + return + + # C.g:532:2: ( ( '__asm__' )? IDENTIFIER '(' (~ ( ';' ) )* ')' ';' ) + # C.g:532:4: ( '__asm__' )? IDENTIFIER '(' (~ ( ';' ) )* ')' ';' + # C.g:532:4: ( '__asm__' )? + alt85 = 2 + LA85_0 = self.input.LA(1) + + if (LA85_0 == 103) : + alt85 = 1 + if alt85 == 1: + # C.g:0:0: '__asm__' + self.match(self.input, 103, self.FOLLOW_103_in_asm2_statement2086) + if self.failed: + return + + + + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_asm2_statement2089) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_asm2_statement2091) + if self.failed: + return + # C.g:532:30: (~ ( ';' ) )* + while True: #loop86 + alt86 = 2 + LA86_0 = self.input.LA(1) + + if (LA86_0 == 63) : + LA86_1 = self.input.LA(2) + + if ((IDENTIFIER <= LA86_1 <= LINE_COMMAND) or (26 <= LA86_1 <= 117)) : + alt86 = 1 + + + elif ((IDENTIFIER <= LA86_0 <= LINE_COMMAND) or (26 <= LA86_0 <= 62) or (64 <= LA86_0 <= 117)) : + alt86 = 1 + + + if alt86 == 1: + # C.g:532:31: ~ ( ';' ) + if (IDENTIFIER <= self.input.LA(1) <= LINE_COMMAND) or (26 <= self.input.LA(1) <= 117): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_asm2_statement2094 + ) + raise mse + + + + + else: + break #loop86 + + + self.match(self.input, 63, self.FOLLOW_63_in_asm2_statement2101) + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_asm2_statement2103) + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 61, asm2_statement_StartIndex) + + pass + + return + + # $ANTLR end asm2_statement + + + # $ANTLR start asm1_statement + # C.g:535:1: asm1_statement : '_asm' '{' (~ ( '}' ) )* '}' ; + def asm1_statement(self, ): + + asm1_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 62): + return + + # C.g:536:2: ( '_asm' '{' (~ ( '}' ) )* '}' ) + # C.g:536:4: '_asm' '{' (~ ( '}' ) )* '}' + self.match(self.input, 104, self.FOLLOW_104_in_asm1_statement2115) + if self.failed: + return + self.match(self.input, 43, self.FOLLOW_43_in_asm1_statement2117) + if self.failed: + return + # C.g:536:15: (~ ( '}' ) )* + while True: #loop87 + alt87 = 2 + LA87_0 = self.input.LA(1) + + if ((IDENTIFIER <= LA87_0 <= 43) or (45 <= LA87_0 <= 117)) : + alt87 = 1 + + + if alt87 == 1: + # C.g:536:16: ~ ( '}' ) + if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 117): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_asm1_statement2120 + ) + raise mse + + + + + else: + break #loop87 + + + self.match(self.input, 44, self.FOLLOW_44_in_asm1_statement2127) + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 62, asm1_statement_StartIndex) + + pass + + return + + # $ANTLR end asm1_statement + + + # $ANTLR start asm_statement + # C.g:539:1: asm_statement : '__asm' '{' (~ ( '}' ) )* '}' ; + def asm_statement(self, ): + + asm_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 63): + return + + # C.g:540:2: ( '__asm' '{' (~ ( '}' ) )* '}' ) + # C.g:540:4: '__asm' '{' (~ ( '}' ) )* '}' + self.match(self.input, 105, self.FOLLOW_105_in_asm_statement2138) + if self.failed: + return + self.match(self.input, 43, self.FOLLOW_43_in_asm_statement2140) + if self.failed: + return + # C.g:540:16: (~ ( '}' ) )* + while True: #loop88 + alt88 = 2 + LA88_0 = self.input.LA(1) + + if ((IDENTIFIER <= LA88_0 <= 43) or (45 <= LA88_0 <= 117)) : + alt88 = 1 + + + if alt88 == 1: + # C.g:540:17: ~ ( '}' ) + if (IDENTIFIER <= self.input.LA(1) <= 43) or (45 <= self.input.LA(1) <= 117): + self.input.consume(); + self.errorRecovery = False + self.failed = False + + else: + if self.backtracking > 0: + self.failed = True + return + + mse = MismatchedSetException(None, self.input) + self.recoverFromMismatchedSet( + self.input, mse, self.FOLLOW_set_in_asm_statement2143 + ) + raise mse + + + + + else: + break #loop88 + + + self.match(self.input, 44, self.FOLLOW_44_in_asm_statement2150) + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 63, asm_statement_StartIndex) + + pass + + return + + # $ANTLR end asm_statement + + + # $ANTLR start macro_statement + # C.g:543:1: macro_statement : IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' ; + def macro_statement(self, ): + + macro_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 64): + return + + # C.g:544:2: ( IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' ) + # C.g:544:4: IDENTIFIER '(' ( declaration )* ( statement_list )? ( expression )? ')' + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_macro_statement2162) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_macro_statement2164) + if self.failed: + return + # C.g:544:19: ( declaration )* + while True: #loop89 + alt89 = 2 + LA89 = self.input.LA(1) + if LA89 == IDENTIFIER: + LA89 = self.input.LA(2) + if LA89 == 62: + LA89_45 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_47 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 66: + LA89_50 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_68 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_71 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_72 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_73 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_74 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_75 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_76 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_77 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_78 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_79 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_80 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_81 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_82 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_83 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_84 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_85 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_86 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 26: + LA89 = self.input.LA(2) + if LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_87 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_88 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_89 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_90 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_91 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_92 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_93 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_94 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_95 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_96 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_97 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_98 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_99 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_100 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 66: + LA89_101 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_102 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_103 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_104 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_105 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_106 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_107 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_108 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_109 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_110 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_111 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_112 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_113 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_114 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_115 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_116 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_117 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_118 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_119 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_120 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_121 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_122 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_123 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_124 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_125 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 34: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_126 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_127 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_128 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_129 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_130 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_131 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_132 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_133 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_134 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_135 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_136 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_137 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_138 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_139 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_140 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_141 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_142 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_143 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_144 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_145 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 35: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_146 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_147 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_148 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_149 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_150 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_151 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_152 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_153 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_154 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_155 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_156 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_157 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_158 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_159 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_160 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_161 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_162 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_163 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_164 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_165 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 36: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_166 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_167 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_168 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_169 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_170 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_171 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_172 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_173 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_174 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_175 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_176 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_177 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_178 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_179 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_180 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_181 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_182 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_183 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_184 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_185 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 37: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_186 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_187 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_188 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_189 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_190 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_191 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_192 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_193 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_194 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_195 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_196 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_197 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_198 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_199 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_200 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_201 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_202 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_203 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_204 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_205 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 38: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_206 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_207 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_208 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_209 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_210 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_211 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_212 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_213 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_214 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_215 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_216 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_217 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_218 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_219 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_220 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_221 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_222 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_223 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_224 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_225 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 39: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_226 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_227 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_228 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_229 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_230 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_231 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_232 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_233 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_234 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_235 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_236 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_237 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_238 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_239 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_240 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_241 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_242 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_243 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_244 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_245 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 40: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_246 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_247 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_248 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_249 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_250 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_251 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_252 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_253 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_254 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_255 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_256 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_257 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_258 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_259 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_260 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_261 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_262 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_263 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_264 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_265 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 41: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_266 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_267 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_268 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_269 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_270 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_271 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_272 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_273 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_274 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_275 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_276 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_277 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_278 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_279 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_280 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_281 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_282 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_283 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_284 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_285 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 42: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_286 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_287 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_288 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_289 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_290 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_291 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_292 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_293 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_294 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_295 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_296 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_297 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_298 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_299 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_300 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_301 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_302 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_303 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_304 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_305 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + elif LA89 == 45 or LA89 == 46: + LA89_40 = self.input.LA(2) + + if (LA89_40 == IDENTIFIER) : + LA89_306 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif (LA89_40 == 43) : + LA89_307 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + + elif LA89 == 48: + LA89_41 = self.input.LA(2) + + if (LA89_41 == 43) : + LA89_308 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif (LA89_41 == IDENTIFIER) : + LA89_309 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 58 or LA89 == 59 or LA89 == 60 or LA89 == 61: + LA89 = self.input.LA(2) + if LA89 == 66: + LA89_310 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 58: + LA89_311 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 59: + LA89_312 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 60: + LA89_313 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == IDENTIFIER: + LA89_314 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 62: + LA89_315 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 25: + LA89_316 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 29 or LA89 == 30 or LA89 == 31 or LA89 == 32 or LA89 == 33: + LA89_317 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 34: + LA89_318 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 35: + LA89_319 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 36: + LA89_320 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 37: + LA89_321 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 38: + LA89_322 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 39: + LA89_323 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 40: + LA89_324 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 41: + LA89_325 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 42: + LA89_326 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 45 or LA89 == 46: + LA89_327 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 48: + LA89_328 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + elif LA89 == 49 or LA89 == 50 or LA89 == 51 or LA89 == 52 or LA89 == 53 or LA89 == 54 or LA89 == 55 or LA89 == 56 or LA89 == 57 or LA89 == 61: + LA89_329 = self.input.LA(3) + + if (self.synpred181()) : + alt89 = 1 + + + + + if alt89 == 1: + # C.g:0:0: declaration + self.following.append(self.FOLLOW_declaration_in_macro_statement2166) + self.declaration() + self.following.pop() + if self.failed: + return + + + else: + break #loop89 + + + # C.g:544:33: ( statement_list )? + alt90 = 2 + LA90 = self.input.LA(1) + if LA90 == IDENTIFIER: + LA90 = self.input.LA(2) + if LA90 == 25 or LA90 == 29 or LA90 == 30 or LA90 == 31 or LA90 == 32 or LA90 == 33 or LA90 == 34 or LA90 == 35 or LA90 == 36 or LA90 == 37 or LA90 == 38 or LA90 == 39 or LA90 == 40 or LA90 == 41 or LA90 == 42 or LA90 == 45 or LA90 == 46 or LA90 == 47 or LA90 == 48 or LA90 == 49 or LA90 == 50 or LA90 == 51 or LA90 == 52 or LA90 == 53 or LA90 == 54 or LA90 == 55 or LA90 == 56 or LA90 == 57 or LA90 == 58 or LA90 == 59 or LA90 == 60 or LA90 == 61: + alt90 = 1 + elif LA90 == 62: + LA90_45 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_46 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == IDENTIFIER: + LA90_47 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 64: + LA90_48 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_49 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_50 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_51 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_52 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_53 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_54 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_55 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_56 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_57 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_58 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_59 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_60 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_61 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_62 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_63 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_64 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_65 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_66 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_67 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_70 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25 or LA90 == 26 or LA90 == 29 or LA90 == 30 or LA90 == 31 or LA90 == 32 or LA90 == 33 or LA90 == 34 or LA90 == 35 or LA90 == 36 or LA90 == 37 or LA90 == 38 or LA90 == 39 or LA90 == 40 or LA90 == 41 or LA90 == 42 or LA90 == 43 or LA90 == 45 or LA90 == 46 or LA90 == 48 or LA90 == 49 or LA90 == 50 or LA90 == 51 or LA90 == 52 or LA90 == 53 or LA90 == 54 or LA90 == 55 or LA90 == 56 or LA90 == 57 or LA90 == 58 or LA90 == 59 or LA90 == 60 or LA90 == 61 or LA90 == 103 or LA90 == 104 or LA90 == 105 or LA90 == 106 or LA90 == 107 or LA90 == 108 or LA90 == 110 or LA90 == 111 or LA90 == 112 or LA90 == 113 or LA90 == 114 or LA90 == 115 or LA90 == 116 or LA90 == 117: + alt90 = 1 + elif LA90 == HEX_LITERAL: + LA90 = self.input.LA(2) + if LA90 == 64: + LA90_87 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_88 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_89 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_90 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_91 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_92 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_93 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_94 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_95 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_96 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_97 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_98 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_99 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_100 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_101 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_102 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_103 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_104 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_105 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_106 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_107 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_108 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25: + alt90 = 1 + elif LA90 == OCTAL_LITERAL: + LA90 = self.input.LA(2) + if LA90 == 64: + LA90_111 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_112 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_113 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_114 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_115 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_116 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_117 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_118 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_119 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_120 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_121 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_122 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_123 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_124 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_125 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_126 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_127 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_128 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_129 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_130 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_131 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25: + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_134 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == DECIMAL_LITERAL: + LA90 = self.input.LA(2) + if LA90 == 64: + LA90_135 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_136 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_137 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_138 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_139 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_140 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_141 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_142 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_143 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_144 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_145 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_146 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_147 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_148 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_149 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_150 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_151 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_152 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_153 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_154 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_155 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_156 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25: + alt90 = 1 + elif LA90 == CHARACTER_LITERAL: + LA90 = self.input.LA(2) + if LA90 == 64: + LA90_159 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_160 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_161 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_162 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_163 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_164 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_165 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_166 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_167 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_168 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_169 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_170 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_171 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_172 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_173 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_174 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_175 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_176 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_177 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_178 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_179 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25: + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_181 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90 = self.input.LA(2) + if LA90 == IDENTIFIER: + LA90_183 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 64: + LA90_184 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_185 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_186 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_187 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_188 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_189 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_190 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_191 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_192 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_193 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_194 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_195 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_196 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_197 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_198 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_199 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_200 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_201 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_202 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_203 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_204 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_205 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_206 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25: + alt90 = 1 + elif LA90 == FLOATING_POINT_LITERAL: + LA90 = self.input.LA(2) + if LA90 == 64: + LA90_209 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_210 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 75: + LA90_211 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66: + LA90_212 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 76: + LA90_213 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_214 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_215 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 28 or LA90 == 80 or LA90 == 81 or LA90 == 82 or LA90 == 83 or LA90 == 84 or LA90 == 85 or LA90 == 86 or LA90 == 87 or LA90 == 88 or LA90 == 89: + LA90_216 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 70: + LA90_217 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 71: + LA90_218 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 68: + LA90_219 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 69: + LA90_220 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 101 or LA90 == 102: + LA90_221 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 97 or LA90 == 98 or LA90 == 99 or LA90 == 100: + LA90_222 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 95 or LA90 == 96: + LA90_223 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 77: + LA90_224 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 94: + LA90_225 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 93: + LA90_226 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 92: + LA90_227 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 91: + LA90_228 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 90: + LA90_229 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 27: + LA90_230 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 25: + alt90 = 1 + elif LA90 == 62: + LA90 = self.input.LA(2) + if LA90 == IDENTIFIER: + LA90_233 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == HEX_LITERAL: + LA90_234 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == OCTAL_LITERAL: + LA90_235 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == DECIMAL_LITERAL: + LA90_236 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == CHARACTER_LITERAL: + LA90_237 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_238 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == FLOATING_POINT_LITERAL: + LA90_239 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_240 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_241 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_242 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79: + LA90_243 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 74: + LA90_244 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 49 or LA90 == 50 or LA90 == 51 or LA90 == 52 or LA90 == 53 or LA90 == 54 or LA90 == 55 or LA90 == 56 or LA90 == 57 or LA90 == 58 or LA90 == 59 or LA90 == 60 or LA90 == 61: + LA90_245 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 34: + LA90_246 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 35: + LA90_247 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 36: + LA90_248 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 37: + LA90_249 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 38: + LA90_250 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 39: + LA90_251 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 40: + LA90_252 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 41: + LA90_253 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 42: + LA90_254 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 45 or LA90 == 46: + LA90_255 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 48: + LA90_256 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90 = self.input.LA(2) + if LA90 == IDENTIFIER: + LA90_257 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == HEX_LITERAL: + LA90_258 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == OCTAL_LITERAL: + LA90_259 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == DECIMAL_LITERAL: + LA90_260 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == CHARACTER_LITERAL: + LA90_261 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_262 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == FLOATING_POINT_LITERAL: + LA90_263 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_264 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_265 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_266 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79: + LA90_267 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 74: + LA90_268 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90 = self.input.LA(2) + if LA90 == IDENTIFIER: + LA90_269 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == HEX_LITERAL: + LA90_270 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == OCTAL_LITERAL: + LA90_271 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == DECIMAL_LITERAL: + LA90_272 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == CHARACTER_LITERAL: + LA90_273 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_274 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == FLOATING_POINT_LITERAL: + LA90_275 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 62: + LA90_276 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_277 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_278 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79: + LA90_279 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 74: + LA90_280 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79: + LA90 = self.input.LA(2) + if LA90 == 62: + LA90_281 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == IDENTIFIER: + LA90_282 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == HEX_LITERAL: + LA90_283 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == OCTAL_LITERAL: + LA90_284 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == DECIMAL_LITERAL: + LA90_285 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == CHARACTER_LITERAL: + LA90_286 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_287 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == FLOATING_POINT_LITERAL: + LA90_288 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_289 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_290 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79: + LA90_291 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 74: + LA90_292 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 74: + LA90 = self.input.LA(2) + if LA90 == 62: + LA90_293 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == IDENTIFIER: + LA90_294 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == HEX_LITERAL: + LA90_295 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == OCTAL_LITERAL: + LA90_296 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == DECIMAL_LITERAL: + LA90_297 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == CHARACTER_LITERAL: + LA90_298 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == STRING_LITERAL: + LA90_299 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == FLOATING_POINT_LITERAL: + LA90_300 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 72: + LA90_301 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 73: + LA90_302 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 66 or LA90 == 68 or LA90 == 69 or LA90 == 77 or LA90 == 78 or LA90 == 79: + LA90_303 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + elif LA90 == 74: + LA90_304 = self.input.LA(3) + + if (self.synpred182()) : + alt90 = 1 + if alt90 == 1: + # C.g:0:0: statement_list + self.following.append(self.FOLLOW_statement_list_in_macro_statement2170) + self.statement_list() + self.following.pop() + if self.failed: + return + + + + # C.g:544:49: ( expression )? + alt91 = 2 + LA91_0 = self.input.LA(1) + + if ((IDENTIFIER <= LA91_0 <= FLOATING_POINT_LITERAL) or LA91_0 == 62 or LA91_0 == 66 or (68 <= LA91_0 <= 69) or (72 <= LA91_0 <= 74) or (77 <= LA91_0 <= 79)) : + alt91 = 1 + if alt91 == 1: + # C.g:0:0: expression + self.following.append(self.FOLLOW_expression_in_macro_statement2173) + self.expression() + self.following.pop() + if self.failed: + return + + + + self.match(self.input, 63, self.FOLLOW_63_in_macro_statement2176) + if self.failed: + return + + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 64, macro_statement_StartIndex) + + pass + + return + + # $ANTLR end macro_statement + + + # $ANTLR start labeled_statement + # C.g:547:1: labeled_statement : ( IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement ); + def labeled_statement(self, ): + + labeled_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 65): + return + + # C.g:548:2: ( IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement ) + alt92 = 3 + LA92 = self.input.LA(1) + if LA92 == IDENTIFIER: + alt92 = 1 + elif LA92 == 106: + alt92 = 2 + elif LA92 == 107: + alt92 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("547:1: labeled_statement : ( IDENTIFIER ':' statement | 'case' constant_expression ':' statement | 'default' ':' statement );", 92, 0, self.input) + + raise nvae + + if alt92 == 1: + # C.g:548:4: IDENTIFIER ':' statement + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_labeled_statement2188) + if self.failed: + return + self.match(self.input, 47, self.FOLLOW_47_in_labeled_statement2190) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_labeled_statement2192) + self.statement() + self.following.pop() + if self.failed: + return + + + elif alt92 == 2: + # C.g:549:4: 'case' constant_expression ':' statement + self.match(self.input, 106, self.FOLLOW_106_in_labeled_statement2197) + if self.failed: + return + self.following.append(self.FOLLOW_constant_expression_in_labeled_statement2199) + self.constant_expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 47, self.FOLLOW_47_in_labeled_statement2201) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_labeled_statement2203) + self.statement() + self.following.pop() + if self.failed: + return + + + elif alt92 == 3: + # C.g:550:4: 'default' ':' statement + self.match(self.input, 107, self.FOLLOW_107_in_labeled_statement2208) + if self.failed: + return + self.match(self.input, 47, self.FOLLOW_47_in_labeled_statement2210) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_labeled_statement2212) + self.statement() + self.following.pop() + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 65, labeled_statement_StartIndex) + + pass + + return + + # $ANTLR end labeled_statement + + class compound_statement_return(object): + def __init__(self): + self.start = None + self.stop = None + + + + # $ANTLR start compound_statement + # C.g:553:1: compound_statement : '{' ( declaration )* ( statement_list )? '}' ; + def compound_statement(self, ): + + retval = self.compound_statement_return() + retval.start = self.input.LT(1) + compound_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 66): + return retval + + # C.g:554:2: ( '{' ( declaration )* ( statement_list )? '}' ) + # C.g:554:4: '{' ( declaration )* ( statement_list )? '}' + self.match(self.input, 43, self.FOLLOW_43_in_compound_statement2223) + if self.failed: + return retval + # C.g:554:8: ( declaration )* + while True: #loop93 + alt93 = 2 + LA93 = self.input.LA(1) + if LA93 == IDENTIFIER: + LA93 = self.input.LA(2) + if LA93 == 62: + LA93_44 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_47 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 66: + LA93_48 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_49 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_50 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_51 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_52 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_53 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_54 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_55 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_56 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_57 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_58 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_59 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_60 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_61 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_62 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_63 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_64 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_65 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 26: + LA93 = self.input.LA(2) + if LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_86 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_87 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_88 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_89 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_90 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_91 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_92 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_93 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_94 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_95 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_96 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_97 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_98 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_99 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 66: + LA93_100 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_101 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_102 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_103 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_104 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_105 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_106 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_107 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_108 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_109 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_110 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_111 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_112 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_113 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_114 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_115 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_116 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_117 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_118 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_119 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_120 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_121 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_122 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_123 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_124 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 34: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_125 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_126 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_127 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_128 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_129 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_130 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_131 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_132 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_133 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_134 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_135 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_136 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_137 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_138 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_139 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_140 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_141 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_142 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_143 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_144 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 35: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_145 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_146 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_147 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_148 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_149 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_150 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_151 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_152 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_153 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_154 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_155 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_156 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_157 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_158 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_159 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_160 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_161 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_162 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_163 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_164 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 36: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_165 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_166 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_167 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_168 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_169 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_170 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_171 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_172 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_173 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_174 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_175 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_176 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_177 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_178 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_179 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_180 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_181 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_182 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_183 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_184 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 37: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_185 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_186 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_187 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_188 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_189 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_190 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_191 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_192 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_193 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_194 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_195 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_196 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_197 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_198 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_199 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_200 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_201 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_202 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_203 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_204 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 38: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_205 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_206 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_207 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_208 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_209 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_210 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_211 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_212 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_213 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_214 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_215 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_216 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_217 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_218 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_219 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_220 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_221 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_222 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_223 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_224 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 39: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_225 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_226 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_227 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_228 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_229 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_230 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_231 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_232 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_233 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_234 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_235 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_236 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_237 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_238 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_239 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_240 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_241 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_242 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_243 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_244 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 40: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_245 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_246 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_247 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_248 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_249 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_250 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_251 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_252 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_253 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_254 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_255 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_256 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_257 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_258 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_259 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_260 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_261 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_262 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_263 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_264 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 41: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_265 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_266 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_267 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_268 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_269 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_270 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_271 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_272 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_273 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_274 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_275 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_276 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_277 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_278 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_279 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_280 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_281 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_282 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_283 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_284 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 42: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_285 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_286 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_287 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_288 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_289 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_290 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_291 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_292 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_293 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_294 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_295 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_296 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_297 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_298 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_299 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_300 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_301 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_302 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_303 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_304 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + elif LA93 == 45 or LA93 == 46: + LA93_40 = self.input.LA(2) + + if (LA93_40 == IDENTIFIER) : + LA93_305 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif (LA93_40 == 43) : + LA93_306 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + + elif LA93 == 48: + LA93_41 = self.input.LA(2) + + if (LA93_41 == 43) : + LA93_307 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif (LA93_41 == IDENTIFIER) : + LA93_308 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 58 or LA93 == 59 or LA93 == 60 or LA93 == 61: + LA93 = self.input.LA(2) + if LA93 == 66: + LA93_309 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 58: + LA93_310 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 59: + LA93_311 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 60: + LA93_312 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == IDENTIFIER: + LA93_313 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 62: + LA93_314 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 25: + LA93_315 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 29 or LA93 == 30 or LA93 == 31 or LA93 == 32 or LA93 == 33: + LA93_316 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 34: + LA93_317 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 35: + LA93_318 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 36: + LA93_319 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 37: + LA93_320 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 38: + LA93_321 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 39: + LA93_322 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 40: + LA93_323 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 41: + LA93_324 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 42: + LA93_325 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 45 or LA93 == 46: + LA93_326 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 48: + LA93_327 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + elif LA93 == 49 or LA93 == 50 or LA93 == 51 or LA93 == 52 or LA93 == 53 or LA93 == 54 or LA93 == 55 or LA93 == 56 or LA93 == 57 or LA93 == 61: + LA93_328 = self.input.LA(3) + + if (self.synpred186()) : + alt93 = 1 + + + + + if alt93 == 1: + # C.g:0:0: declaration + self.following.append(self.FOLLOW_declaration_in_compound_statement2225) + self.declaration() + self.following.pop() + if self.failed: + return retval + + + else: + break #loop93 + + + # C.g:554:21: ( statement_list )? + alt94 = 2 + LA94_0 = self.input.LA(1) + + if ((IDENTIFIER <= LA94_0 <= FLOATING_POINT_LITERAL) or (25 <= LA94_0 <= 26) or (29 <= LA94_0 <= 43) or (45 <= LA94_0 <= 46) or (48 <= LA94_0 <= 62) or LA94_0 == 66 or (68 <= LA94_0 <= 69) or (72 <= LA94_0 <= 74) or (77 <= LA94_0 <= 79) or (103 <= LA94_0 <= 108) or (110 <= LA94_0 <= 117)) : + alt94 = 1 + if alt94 == 1: + # C.g:0:0: statement_list + self.following.append(self.FOLLOW_statement_list_in_compound_statement2228) + self.statement_list() + self.following.pop() + if self.failed: + return retval + + + + self.match(self.input, 44, self.FOLLOW_44_in_compound_statement2231) + if self.failed: + return retval + + + + retval.stop = self.input.LT(-1) + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 66, compound_statement_StartIndex) + + pass + + return retval + + # $ANTLR end compound_statement + + + # $ANTLR start statement_list + # C.g:557:1: statement_list : ( statement )+ ; + def statement_list(self, ): + + statement_list_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 67): + return + + # C.g:558:2: ( ( statement )+ ) + # C.g:558:4: ( statement )+ + # C.g:558:4: ( statement )+ + cnt95 = 0 + while True: #loop95 + alt95 = 2 + LA95 = self.input.LA(1) + if LA95 == IDENTIFIER: + LA95 = self.input.LA(2) + if LA95 == 62: + LA95_46 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 25 or LA95 == 29 or LA95 == 30 or LA95 == 31 or LA95 == 32 or LA95 == 33 or LA95 == 34 or LA95 == 35 or LA95 == 36 or LA95 == 37 or LA95 == 38 or LA95 == 39 or LA95 == 40 or LA95 == 41 or LA95 == 42 or LA95 == 45 or LA95 == 46 or LA95 == 47 or LA95 == 48 or LA95 == 49 or LA95 == 50 or LA95 == 51 or LA95 == 52 or LA95 == 53 or LA95 == 54 or LA95 == 55 or LA95 == 56 or LA95 == 57 or LA95 == 58 or LA95 == 59 or LA95 == 60 or LA95 == 61: + alt95 = 1 + elif LA95 == STRING_LITERAL: + LA95_48 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == IDENTIFIER: + LA95_49 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 64: + LA95_50 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 75: + LA95_51 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 66: + LA95_52 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 76: + LA95_53 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 72: + LA95_54 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 73: + LA95_55 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 70: + LA95_56 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 71: + LA95_57 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 68: + LA95_58 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 69: + LA95_59 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 101 or LA95 == 102: + LA95_60 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_61 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 95 or LA95 == 96: + LA95_62 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 77: + LA95_63 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 94: + LA95_64 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 93: + LA95_65 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 92: + LA95_66 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 91: + LA95_67 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 90: + LA95_68 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 27: + LA95_69 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_88 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + + elif LA95 == HEX_LITERAL: + LA95 = self.input.LA(2) + if LA95 == 64: + LA95_89 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 62: + LA95_90 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 75: + LA95_91 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 66: + LA95_92 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 76: + LA95_93 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 72: + LA95_94 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 73: + LA95_95 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_96 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 70: + LA95_97 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 71: + LA95_98 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 68: + LA95_99 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 69: + LA95_100 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 101 or LA95 == 102: + LA95_101 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_102 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 95 or LA95 == 96: + LA95_103 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 77: + LA95_104 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 94: + LA95_105 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 93: + LA95_106 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 92: + LA95_107 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 91: + LA95_108 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 90: + LA95_109 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 27: + LA95_110 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 25: + alt95 = 1 + + elif LA95 == OCTAL_LITERAL: + LA95 = self.input.LA(2) + if LA95 == 64: + LA95_113 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 62: + LA95_114 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 75: + LA95_115 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 66: + LA95_116 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 76: + LA95_117 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 72: + LA95_118 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 73: + LA95_119 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 70: + LA95_120 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 71: + LA95_121 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + + + elif LA95 == 68: + LA95_122 = self.input.LA(3) + + if (self.synpred188()) : + alt95 = 1 + - class Struct_or_union_specifierContext(ParserRuleContext): + elif LA95 == 69: + LA95_123 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def struct_or_union(self): - return self.getTypedRuleContext(CParser.Struct_or_unionContext,0) + elif LA95 == 101 or LA95 == 102: + LA95_124 = self.input.LA(3) - def struct_declaration_list(self): - return self.getTypedRuleContext(CParser.Struct_declaration_listContext,0) + if (self.synpred188()) : + alt95 = 1 - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_125 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_struct_or_union_specifier + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStruct_or_union_specifier" ): - listener.enterStruct_or_union_specifier(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStruct_or_union_specifier" ): - listener.exitStruct_or_union_specifier(self) + elif LA95 == 95 or LA95 == 96: + LA95_126 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 77: + LA95_127 = self.input.LA(3) - def struct_or_union_specifier(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Struct_or_union_specifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 20, self.RULE_struct_or_union_specifier) - self._la = 0 # Token type - try: - self.state = 262 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,18,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 251 - self.struct_or_union() - self.state = 253 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.IDENTIFIER: - self.state = 252 - self.match(CParser.IDENTIFIER) - - - self.state = 255 - self.match(CParser.T__0) - self.state = 256 - self.struct_declaration_list() - self.state = 257 - self.match(CParser.T__19) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 259 - self.struct_or_union() - self.state = 260 - self.match(CParser.IDENTIFIER) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Struct_or_unionContext(ParserRuleContext): + elif LA95 == 94: + LA95_128 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_struct_or_union + elif LA95 == 93: + LA95_129 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStruct_or_union" ): - listener.enterStruct_or_union(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStruct_or_union" ): - listener.exitStruct_or_union(self) + elif LA95 == 92: + LA95_130 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def struct_or_union(self): + elif LA95 == 91: + LA95_131 = self.input.LA(3) - localctx = CParser.Struct_or_unionContext(self, self._ctx, self.state) - self.enterRule(localctx, 22, self.RULE_struct_or_union) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 264 - _la = self._input.LA(1) - if not(_la==CParser.T__20 or _la==CParser.T__21): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (self.synpred188()) : + alt95 = 1 - class Struct_declaration_listContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + elif LA95 == 90: + LA95_132 = self.input.LA(3) - def struct_declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Struct_declarationContext) - else: - return self.getTypedRuleContext(CParser.Struct_declarationContext,i) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_struct_declaration_list + elif LA95 == 27: + LA95_133 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStruct_declaration_list" ): - listener.enterStruct_declaration_list(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStruct_declaration_list" ): - listener.exitStruct_declaration_list(self) + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_135 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def struct_declaration_list(self): + elif LA95 == 25: + alt95 = 1 - localctx = CParser.Struct_declaration_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 24, self.RULE_struct_declaration_list) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 267 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 266 - self.struct_declaration() - self.state = 269 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36))) != 0) or _la==CParser.IDENTIFIER): - break - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == DECIMAL_LITERAL: + LA95 = self.input.LA(2) + if LA95 == 64: + LA95_137 = self.input.LA(3) - class Struct_declarationContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def specifier_qualifier_list(self): - return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0) + elif LA95 == 62: + LA95_138 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def struct_declarator_list(self): - return self.getTypedRuleContext(CParser.Struct_declarator_listContext,0) + elif LA95 == 75: + LA95_139 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_struct_declaration + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStruct_declaration" ): - listener.enterStruct_declaration(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStruct_declaration" ): - listener.exitStruct_declaration(self) + elif LA95 == 66: + LA95_140 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 76: + LA95_141 = self.input.LA(3) - def struct_declaration(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Struct_declarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 26, self.RULE_struct_declaration) - try: - self.enterOuterAlt(localctx, 1) - self.state = 271 - self.specifier_qualifier_list() - self.state = 272 - self.struct_declarator_list() - self.state = 273 - self.match(CParser.T__1) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Specifier_qualifier_listContext(ParserRuleContext): + elif LA95 == 72: + LA95_142 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def type_qualifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Type_qualifierContext) - else: - return self.getTypedRuleContext(CParser.Type_qualifierContext,i) + elif LA95 == 73: + LA95_143 = self.input.LA(3) - def type_specifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Type_specifierContext) - else: - return self.getTypedRuleContext(CParser.Type_specifierContext,i) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_specifier_qualifier_list + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_144 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSpecifier_qualifier_list" ): - listener.enterSpecifier_qualifier_list(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSpecifier_qualifier_list" ): - listener.exitSpecifier_qualifier_list(self) + elif LA95 == 70: + LA95_145 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def specifier_qualifier_list(self): + elif LA95 == 71: + LA95_146 = self.input.LA(3) - localctx = CParser.Specifier_qualifier_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 28, self.RULE_specifier_qualifier_list) - try: - self.enterOuterAlt(localctx, 1) - self.state = 277 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 277 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__24, CParser.T__25, CParser.T__26, CParser.T__27, CParser.T__28, CParser.T__29, CParser.T__30, CParser.T__31, CParser.T__32, CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__36]: - self.state = 275 - self.type_qualifier() - pass - elif token in [CParser.T__10, CParser.T__11, CParser.T__12, CParser.T__13, CParser.T__14, CParser.T__15, CParser.T__16, CParser.T__17, CParser.T__18, CParser.T__20, CParser.T__21, CParser.T__23, CParser.IDENTIFIER]: - self.state = 276 - self.type_specifier() - pass - else: - raise NoViableAltException(self) + if (self.synpred188()) : + alt95 = 1 - else: - raise NoViableAltException(self) - self.state = 279 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,21,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 68: + LA95_147 = self.input.LA(3) - class Struct_declarator_listContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def struct_declarator(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Struct_declaratorContext) - else: - return self.getTypedRuleContext(CParser.Struct_declaratorContext,i) + elif LA95 == 69: + LA95_148 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_struct_declarator_list - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStruct_declarator_list" ): - listener.enterStruct_declarator_list(self) + elif LA95 == 101 or LA95 == 102: + LA95_149 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStruct_declarator_list" ): - listener.exitStruct_declarator_list(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_150 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def struct_declarator_list(self): - localctx = CParser.Struct_declarator_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 30, self.RULE_struct_declarator_list) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 281 - self.struct_declarator() - self.state = 286 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__3: - self.state = 282 - self.match(CParser.T__3) - self.state = 283 - self.struct_declarator() - self.state = 288 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 95 or LA95 == 96: + LA95_151 = self.input.LA(3) - class Struct_declaratorContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def declarator(self): - return self.getTypedRuleContext(CParser.DeclaratorContext,0) + elif LA95 == 77: + LA95_152 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def constant_expression(self): - return self.getTypedRuleContext(CParser.Constant_expressionContext,0) + elif LA95 == 94: + LA95_153 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_struct_declarator + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStruct_declarator" ): - listener.enterStruct_declarator(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStruct_declarator" ): - listener.exitStruct_declarator(self) + elif LA95 == 93: + LA95_154 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 92: + LA95_155 = self.input.LA(3) - def struct_declarator(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Struct_declaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 32, self.RULE_struct_declarator) - self._la = 0 # Token type - try: - self.state = 296 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__37, CParser.T__41, CParser.IDENTIFIER]: - self.enterOuterAlt(localctx, 1) - self.state = 289 - self.declarator() - self.state = 292 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__22: - self.state = 290 - self.match(CParser.T__22) - self.state = 291 - self.constant_expression() + elif LA95 == 91: + LA95_156 = self.input.LA(3) - pass - elif token in [CParser.T__22]: - self.enterOuterAlt(localctx, 2) - self.state = 294 - self.match(CParser.T__22) - self.state = 295 - self.constant_expression() - pass - else: - raise NoViableAltException(self) + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Enum_specifierContext(ParserRuleContext): + elif LA95 == 90: + LA95_157 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def enumerator_list(self): - return self.getTypedRuleContext(CParser.Enumerator_listContext,0) + elif LA95 == 27: + LA95_158 = self.input.LA(3) - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_enum_specifier - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnum_specifier" ): - listener.enterEnum_specifier(self) + elif LA95 == 25: + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnum_specifier" ): - listener.exitEnum_specifier(self) + elif LA95 == CHARACTER_LITERAL: + LA95 = self.input.LA(2) + if LA95 == 64: + LA95_161 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 62: + LA95_162 = self.input.LA(3) - def enum_specifier(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Enum_specifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 34, self.RULE_enum_specifier) - self._la = 0 # Token type - try: - self.state = 317 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,27,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 298 - self.match(CParser.T__23) - self.state = 299 - self.match(CParser.T__0) - self.state = 300 - self.enumerator_list() - self.state = 302 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__3: - self.state = 301 - self.match(CParser.T__3) - - - self.state = 304 - self.match(CParser.T__19) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 306 - self.match(CParser.T__23) - self.state = 307 - self.match(CParser.IDENTIFIER) - self.state = 308 - self.match(CParser.T__0) - self.state = 309 - self.enumerator_list() - self.state = 311 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__3: - self.state = 310 - self.match(CParser.T__3) - - - self.state = 313 - self.match(CParser.T__19) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 315 - self.match(CParser.T__23) - self.state = 316 - self.match(CParser.IDENTIFIER) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Enumerator_listContext(ParserRuleContext): + elif LA95 == 75: + LA95_163 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def enumerator(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.EnumeratorContext) - else: - return self.getTypedRuleContext(CParser.EnumeratorContext,i) + elif LA95 == 66: + LA95_164 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_enumerator_list + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumerator_list" ): - listener.enterEnumerator_list(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumerator_list" ): - listener.exitEnumerator_list(self) + elif LA95 == 76: + LA95_165 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 72: + LA95_166 = self.input.LA(3) - def enumerator_list(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Enumerator_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 36, self.RULE_enumerator_list) - try: - self.enterOuterAlt(localctx, 1) - self.state = 319 - self.enumerator() - self.state = 324 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,28,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 320 - self.match(CParser.T__3) - self.state = 321 - self.enumerator() - self.state = 326 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,28,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class EnumeratorContext(ParserRuleContext): + elif LA95 == 73: + LA95_167 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) - def constant_expression(self): - return self.getTypedRuleContext(CParser.Constant_expressionContext,0) + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_168 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_enumerator - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumerator" ): - listener.enterEnumerator(self) + elif LA95 == 70: + LA95_169 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumerator" ): - listener.exitEnumerator(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 71: + LA95_170 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def enumerator(self): - localctx = CParser.EnumeratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 38, self.RULE_enumerator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 327 - self.match(CParser.IDENTIFIER) - self.state = 330 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__4: - self.state = 328 - self.match(CParser.T__4) - self.state = 329 - self.constant_expression() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 68: + LA95_171 = self.input.LA(3) - class Type_qualifierContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + elif LA95 == 69: + LA95_172 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_type_qualifier + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterType_qualifier" ): - listener.enterType_qualifier(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitType_qualifier" ): - listener.exitType_qualifier(self) + elif LA95 == 101 or LA95 == 102: + LA95_173 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_174 = self.input.LA(3) - def type_qualifier(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Type_qualifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 40, self.RULE_type_qualifier) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 332 - _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class DeclaratorContext(ParserRuleContext): + elif LA95 == 95 or LA95 == 96: + LA95_175 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def direct_declarator(self): - return self.getTypedRuleContext(CParser.Direct_declaratorContext,0) + elif LA95 == 77: + LA95_176 = self.input.LA(3) - def pointer(self): - return self.getTypedRuleContext(CParser.PointerContext,0) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_declarator + elif LA95 == 94: + LA95_177 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDeclarator" ): - listener.enterDeclarator(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDeclarator" ): - listener.exitDeclarator(self) + elif LA95 == 93: + LA95_178 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def declarator(self): + elif LA95 == 92: + LA95_179 = self.input.LA(3) - localctx = CParser.DeclaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 42, self.RULE_declarator) - self._la = 0 # Token type - try: - self.state = 348 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,34,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 335 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__41: - self.state = 334 - self.pointer() + if (self.synpred188()) : + alt95 = 1 - self.state = 338 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__33: - self.state = 337 - self.match(CParser.T__33) + elif LA95 == 91: + LA95_180 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - self.state = 341 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__34: - self.state = 340 - self.match(CParser.T__34) + elif LA95 == 90: + LA95_181 = self.input.LA(3) - self.state = 344 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__35: - self.state = 343 - self.match(CParser.T__35) + if (self.synpred188()) : + alt95 = 1 - self.state = 346 - self.direct_declarator() - pass + elif LA95 == 27: + LA95_182 = self.input.LA(3) - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 347 - self.pointer() - pass + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 25: + alt95 = 1 - class Direct_declaratorContext(ParserRuleContext): + elif LA95 == STRING_LITERAL: + LA95 = self.input.LA(2) + if LA95 == IDENTIFIER: + LA95_185 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) - def declarator_suffix(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Declarator_suffixContext) - else: - return self.getTypedRuleContext(CParser.Declarator_suffixContext,i) + elif LA95 == 64: + LA95_186 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def declarator(self): - return self.getTypedRuleContext(CParser.DeclaratorContext,0) + elif LA95 == 62: + LA95_187 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_direct_declarator + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDirect_declarator" ): - listener.enterDirect_declarator(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDirect_declarator" ): - listener.exitDirect_declarator(self) + elif LA95 == 75: + LA95_188 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 66: + LA95_189 = self.input.LA(3) - def direct_declarator(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Direct_declaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 44, self.RULE_direct_declarator) - try: - self.state = 368 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.IDENTIFIER]: - self.enterOuterAlt(localctx, 1) - self.state = 350 - self.match(CParser.IDENTIFIER) - self.state = 354 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,35,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 351 - self.declarator_suffix() - self.state = 356 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,35,self._ctx) - - pass - elif token in [CParser.T__37]: - self.enterOuterAlt(localctx, 2) - self.state = 357 - self.match(CParser.T__37) - self.state = 359 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,36,self._ctx) - if la_ == 1: - self.state = 358 - self.match(CParser.T__33) - - - self.state = 361 - self.declarator() - self.state = 362 - self.match(CParser.T__38) - self.state = 364 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 363 - self.declarator_suffix() - else: - raise NoViableAltException(self) - self.state = 366 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,37,self._ctx) + elif LA95 == 76: + LA95_190 = self.input.LA(3) - pass - else: - raise NoViableAltException(self) + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Declarator_suffixContext(ParserRuleContext): + elif LA95 == 72: + LA95_191 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def constant_expression(self): - return self.getTypedRuleContext(CParser.Constant_expressionContext,0) + elif LA95 == 73: + LA95_192 = self.input.LA(3) - def parameter_type_list(self): - return self.getTypedRuleContext(CParser.Parameter_type_listContext,0) + if (self.synpred188()) : + alt95 = 1 - def identifier_list(self): - return self.getTypedRuleContext(CParser.Identifier_listContext,0) + elif LA95 == 70: + LA95_193 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_declarator_suffix - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDeclarator_suffix" ): - listener.enterDeclarator_suffix(self) + elif LA95 == 71: + LA95_194 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDeclarator_suffix" ): - listener.exitDeclarator_suffix(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 68: + LA95_195 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def declarator_suffix(self): - localctx = CParser.Declarator_suffixContext(self, self._ctx, self.state) - self.enterRule(localctx, 46, self.RULE_declarator_suffix) - try: - self.state = 386 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,39,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 370 - self.match(CParser.T__39) - self.state = 371 - self.constant_expression() - self.state = 372 - self.match(CParser.T__40) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 374 - self.match(CParser.T__39) - self.state = 375 - self.match(CParser.T__40) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 376 - self.match(CParser.T__37) - self.state = 377 - self.parameter_type_list() - self.state = 378 - self.match(CParser.T__38) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 380 - self.match(CParser.T__37) - self.state = 381 - self.identifier_list() - self.state = 382 - self.match(CParser.T__38) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 384 - self.match(CParser.T__37) - self.state = 385 - self.match(CParser.T__38) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 69: + LA95_196 = self.input.LA(3) - class PointerContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def type_qualifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Type_qualifierContext) - else: - return self.getTypedRuleContext(CParser.Type_qualifierContext,i) + elif LA95 == 101 or LA95 == 102: + LA95_197 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def pointer(self): - return self.getTypedRuleContext(CParser.PointerContext,0) + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_198 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_pointer + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPointer" ): - listener.enterPointer(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPointer" ): - listener.exitPointer(self) + elif LA95 == 95 or LA95 == 96: + LA95_199 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 77: + LA95_200 = self.input.LA(3) - def pointer(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.PointerContext(self, self._ctx, self.state) - self.enterRule(localctx, 48, self.RULE_pointer) - try: - self.state = 400 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,42,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 388 - self.match(CParser.T__41) - self.state = 390 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 389 - self.type_qualifier() - else: - raise NoViableAltException(self) - self.state = 392 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,40,self._ctx) - - self.state = 395 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,41,self._ctx) - if la_ == 1: - self.state = 394 - self.pointer() + elif LA95 == 94: + LA95_201 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - pass - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 397 - self.match(CParser.T__41) - self.state = 398 - self.pointer() - pass + elif LA95 == 93: + LA95_202 = self.input.LA(3) - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 399 - self.match(CParser.T__41) - pass + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 92: + LA95_203 = self.input.LA(3) - class Parameter_type_listContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def parameter_list(self): - return self.getTypedRuleContext(CParser.Parameter_listContext,0) + elif LA95 == 91: + LA95_204 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_parameter_type_list - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterParameter_type_list" ): - listener.enterParameter_type_list(self) + elif LA95 == 90: + LA95_205 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitParameter_type_list" ): - listener.exitParameter_type_list(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 27: + LA95_206 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def parameter_type_list(self): - localctx = CParser.Parameter_type_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 50, self.RULE_parameter_type_list) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 402 - self.parameter_list() - self.state = 408 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__3: - self.state = 403 - self.match(CParser.T__3) - self.state = 405 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__28: - self.state = 404 - self.match(CParser.T__28) - - - self.state = 407 - self.match(CParser.T__42) - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 25: + alt95 = 1 + elif LA95 == STRING_LITERAL: + LA95_208 = self.input.LA(3) - class Parameter_listContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def parameter_declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Parameter_declarationContext) - else: - return self.getTypedRuleContext(CParser.Parameter_declarationContext,i) + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_209 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_parameter_list - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterParameter_list" ): - listener.enterParameter_list(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitParameter_list" ): - listener.exitParameter_list(self) + elif LA95 == FLOATING_POINT_LITERAL: + LA95 = self.input.LA(2) + if LA95 == 64: + LA95_211 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 62: + LA95_212 = self.input.LA(3) - def parameter_list(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Parameter_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 52, self.RULE_parameter_list) - try: - self.enterOuterAlt(localctx, 1) - self.state = 410 - self.parameter_declaration() - self.state = 418 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,46,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 411 - self.match(CParser.T__3) - self.state = 413 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,45,self._ctx) - if la_ == 1: - self.state = 412 - self.match(CParser.T__28) - - - self.state = 415 - self.parameter_declaration() - self.state = 420 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,46,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Parameter_declarationContext(ParserRuleContext): + elif LA95 == 75: + LA95_213 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def declaration_specifiers(self): - return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) + elif LA95 == 66: + LA95_214 = self.input.LA(3) - def declarator(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.DeclaratorContext) - else: - return self.getTypedRuleContext(CParser.DeclaratorContext,i) + if (self.synpred188()) : + alt95 = 1 - def abstract_declarator(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Abstract_declaratorContext) - else: - return self.getTypedRuleContext(CParser.Abstract_declaratorContext,i) + elif LA95 == 76: + LA95_215 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) - def pointer(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.PointerContext) - else: - return self.getTypedRuleContext(CParser.PointerContext,i) + elif LA95 == 72: + LA95_216 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_parameter_declaration - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterParameter_declaration" ): - listener.enterParameter_declaration(self) + elif LA95 == 73: + LA95_217 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitParameter_declaration" ): - listener.exitParameter_declaration(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 70: + LA95_218 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def parameter_declaration(self): - localctx = CParser.Parameter_declarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 54, self.RULE_parameter_declaration) - self._la = 0 # Token type - try: - self.state = 439 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,51,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 421 - self.declaration_specifiers() - self.state = 426 - self._errHandler.sync(self) - _la = self._input.LA(1) - while ((((_la - 34)) & ~0x3f) == 0 and ((1 << (_la - 34)) & ((1 << (CParser.T__33 - 34)) | (1 << (CParser.T__34 - 34)) | (1 << (CParser.T__35 - 34)) | (1 << (CParser.T__37 - 34)) | (1 << (CParser.T__39 - 34)) | (1 << (CParser.T__41 - 34)) | (1 << (CParser.IDENTIFIER - 34)))) != 0): - self.state = 424 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,47,self._ctx) - if la_ == 1: - self.state = 422 - self.declarator() - pass - - elif la_ == 2: - self.state = 423 - self.abstract_declarator() - pass + elif LA95 == 71: + LA95_219 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - self.state = 428 - self._errHandler.sync(self) - _la = self._input.LA(1) - self.state = 430 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__28: - self.state = 429 - self.match(CParser.T__28) + elif LA95 == 68: + LA95_220 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - pass - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 435 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__41: - self.state = 432 - self.pointer() - self.state = 437 - self._errHandler.sync(self) - _la = self._input.LA(1) + elif LA95 == 69: + LA95_221 = self.input.LA(3) - self.state = 438 - self.match(CParser.IDENTIFIER) - pass + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 101 or LA95 == 102: + LA95_222 = self.input.LA(3) - class Identifier_listContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def IDENTIFIER(self, i:int=None): - if i is None: - return self.getTokens(CParser.IDENTIFIER) - else: - return self.getToken(CParser.IDENTIFIER, i) + elif LA95 == 97 or LA95 == 98 or LA95 == 99 or LA95 == 100: + LA95_223 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_identifier_list + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIdentifier_list" ): - listener.enterIdentifier_list(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIdentifier_list" ): - listener.exitIdentifier_list(self) + elif LA95 == 95 or LA95 == 96: + LA95_224 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 77: + LA95_225 = self.input.LA(3) - def identifier_list(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Identifier_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 56, self.RULE_identifier_list) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 441 - self.match(CParser.IDENTIFIER) - self.state = 446 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__3: - self.state = 442 - self.match(CParser.T__3) - self.state = 443 - self.match(CParser.IDENTIFIER) - self.state = 448 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Type_nameContext(ParserRuleContext): + elif LA95 == 94: + LA95_226 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def specifier_qualifier_list(self): - return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0) + elif LA95 == 93: + LA95_227 = self.input.LA(3) - def abstract_declarator(self): - return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0) + if (self.synpred188()) : + alt95 = 1 - def type_id(self): - return self.getTypedRuleContext(CParser.Type_idContext,0) + elif LA95 == 92: + LA95_228 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_type_name - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterType_name" ): - listener.enterType_name(self) + elif LA95 == 91: + LA95_229 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitType_name" ): - listener.exitType_name(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 90: + LA95_230 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def type_name(self): - localctx = CParser.Type_nameContext(self, self._ctx, self.state) - self.enterRule(localctx, 58, self.RULE_type_name) - self._la = 0 # Token type - try: - self.state = 454 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,54,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 449 - self.specifier_qualifier_list() - self.state = 451 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__37) | (1 << CParser.T__39) | (1 << CParser.T__41))) != 0): - self.state = 450 - self.abstract_declarator() + elif LA95 == 27: + LA95_231 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - pass - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 453 - self.type_id() - pass + elif LA95 == 25: + alt95 = 1 + elif LA95 == 28 or LA95 == 80 or LA95 == 81 or LA95 == 82 or LA95 == 83 or LA95 == 84 or LA95 == 85 or LA95 == 86 or LA95 == 87 or LA95 == 88 or LA95 == 89: + LA95_234 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Abstract_declaratorContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + elif LA95 == 62: + LA95 = self.input.LA(2) + if LA95 == IDENTIFIER: + LA95_235 = self.input.LA(3) - def pointer(self): - return self.getTypedRuleContext(CParser.PointerContext,0) + if (self.synpred188()) : + alt95 = 1 - def direct_abstract_declarator(self): - return self.getTypedRuleContext(CParser.Direct_abstract_declaratorContext,0) + elif LA95 == HEX_LITERAL: + LA95_236 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_abstract_declarator - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAbstract_declarator" ): - listener.enterAbstract_declarator(self) + elif LA95 == OCTAL_LITERAL: + LA95_237 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAbstract_declarator" ): - listener.exitAbstract_declarator(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == DECIMAL_LITERAL: + LA95_238 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def abstract_declarator(self): - localctx = CParser.Abstract_declaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 60, self.RULE_abstract_declarator) - try: - self.state = 461 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__41]: - self.enterOuterAlt(localctx, 1) - self.state = 456 - self.pointer() - self.state = 458 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,55,self._ctx) - if la_ == 1: - self.state = 457 - self.direct_abstract_declarator() + elif LA95 == CHARACTER_LITERAL: + LA95_239 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - pass - elif token in [CParser.T__37, CParser.T__39]: - self.enterOuterAlt(localctx, 2) - self.state = 460 - self.direct_abstract_declarator() - pass - else: - raise NoViableAltException(self) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == STRING_LITERAL: + LA95_240 = self.input.LA(3) - class Direct_abstract_declaratorContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def abstract_declarator(self): - return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0) + elif LA95 == FLOATING_POINT_LITERAL: + LA95_241 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def abstract_declarator_suffix(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Abstract_declarator_suffixContext) - else: - return self.getTypedRuleContext(CParser.Abstract_declarator_suffixContext,i) + elif LA95 == 62: + LA95_242 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_direct_abstract_declarator + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDirect_abstract_declarator" ): - listener.enterDirect_abstract_declarator(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDirect_abstract_declarator" ): - listener.exitDirect_abstract_declarator(self) + elif LA95 == 72: + LA95_243 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 73: + LA95_244 = self.input.LA(3) - def direct_abstract_declarator(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Direct_abstract_declaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 62, self.RULE_direct_abstract_declarator) - try: - self.enterOuterAlt(localctx, 1) - self.state = 468 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,57,self._ctx) - if la_ == 1: - self.state = 463 - self.match(CParser.T__37) - self.state = 464 - self.abstract_declarator() - self.state = 465 - self.match(CParser.T__38) - pass - - elif la_ == 2: - self.state = 467 - self.abstract_declarator_suffix() - pass - - - self.state = 473 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,58,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 470 - self.abstract_declarator_suffix() - self.state = 475 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,58,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Abstract_declarator_suffixContext(ParserRuleContext): + elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79: + LA95_245 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def constant_expression(self): - return self.getTypedRuleContext(CParser.Constant_expressionContext,0) + elif LA95 == 74: + LA95_246 = self.input.LA(3) - def parameter_type_list(self): - return self.getTypedRuleContext(CParser.Parameter_type_listContext,0) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_abstract_declarator_suffix + elif LA95 == 49 or LA95 == 50 or LA95 == 51 or LA95 == 52 or LA95 == 53 or LA95 == 54 or LA95 == 55 or LA95 == 56 or LA95 == 57 or LA95 == 58 or LA95 == 59 or LA95 == 60 or LA95 == 61: + LA95_247 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAbstract_declarator_suffix" ): - listener.enterAbstract_declarator_suffix(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAbstract_declarator_suffix" ): - listener.exitAbstract_declarator_suffix(self) + elif LA95 == 34: + LA95_248 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def abstract_declarator_suffix(self): + elif LA95 == 35: + LA95_249 = self.input.LA(3) - localctx = CParser.Abstract_declarator_suffixContext(self, self._ctx, self.state) - self.enterRule(localctx, 64, self.RULE_abstract_declarator_suffix) - try: - self.state = 488 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,59,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 476 - self.match(CParser.T__39) - self.state = 477 - self.match(CParser.T__40) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 478 - self.match(CParser.T__39) - self.state = 479 - self.constant_expression() - self.state = 480 - self.match(CParser.T__40) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 482 - self.match(CParser.T__37) - self.state = 483 - self.match(CParser.T__38) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 484 - self.match(CParser.T__37) - self.state = 485 - self.parameter_type_list() - self.state = 486 - self.match(CParser.T__38) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (self.synpred188()) : + alt95 = 1 - class InitializerContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + elif LA95 == 36: + LA95_250 = self.input.LA(3) - def assignment_expression(self): - return self.getTypedRuleContext(CParser.Assignment_expressionContext,0) + if (self.synpred188()) : + alt95 = 1 - def initializer_list(self): - return self.getTypedRuleContext(CParser.Initializer_listContext,0) + elif LA95 == 37: + LA95_251 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_initializer - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInitializer" ): - listener.enterInitializer(self) + elif LA95 == 38: + LA95_252 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInitializer" ): - listener.exitInitializer(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 39: + LA95_253 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def initializer(self): - localctx = CParser.InitializerContext(self, self._ctx, self.state) - self.enterRule(localctx, 66, self.RULE_initializer) - self._la = 0 # Token type - try: - self.state = 498 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__37, CParser.T__41, CParser.T__43, CParser.T__44, CParser.T__47, CParser.T__48, CParser.T__49, CParser.T__52, CParser.T__53, CParser.T__54, CParser.IDENTIFIER, CParser.CHARACTER_LITERAL, CParser.STRING_LITERAL, CParser.HEX_LITERAL, CParser.DECIMAL_LITERAL, CParser.OCTAL_LITERAL, CParser.FLOATING_POINT_LITERAL]: - self.enterOuterAlt(localctx, 1) - self.state = 490 - self.assignment_expression() - pass - elif token in [CParser.T__0]: - self.enterOuterAlt(localctx, 2) - self.state = 491 - self.match(CParser.T__0) - self.state = 492 - self.initializer_list() - self.state = 494 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__3: - self.state = 493 - self.match(CParser.T__3) - - - self.state = 496 - self.match(CParser.T__19) - pass - else: - raise NoViableAltException(self) + elif LA95 == 40: + LA95_254 = self.input.LA(3) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (self.synpred188()) : + alt95 = 1 - class Initializer_listContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + elif LA95 == 41: + LA95_255 = self.input.LA(3) - def initializer(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.InitializerContext) - else: - return self.getTypedRuleContext(CParser.InitializerContext,i) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_initializer_list + elif LA95 == 42: + LA95_256 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInitializer_list" ): - listener.enterInitializer_list(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInitializer_list" ): - listener.exitInitializer_list(self) + elif LA95 == 45 or LA95 == 46: + LA95_257 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def initializer_list(self): + elif LA95 == 48: + LA95_258 = self.input.LA(3) - localctx = CParser.Initializer_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 68, self.RULE_initializer_list) - try: - self.enterOuterAlt(localctx, 1) - self.state = 500 - self.initializer() - self.state = 505 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,62,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 501 - self.match(CParser.T__3) - self.state = 502 - self.initializer() - self.state = 507 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,62,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (self.synpred188()) : + alt95 = 1 - class Argument_expression_listContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def assignment_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Assignment_expressionContext) - else: - return self.getTypedRuleContext(CParser.Assignment_expressionContext,i) + elif LA95 == 72: + LA95 = self.input.LA(2) + if LA95 == IDENTIFIER: + LA95_259 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_argument_expression_list - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArgument_expression_list" ): - listener.enterArgument_expression_list(self) + elif LA95 == HEX_LITERAL: + LA95_260 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArgument_expression_list" ): - listener.exitArgument_expression_list(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == OCTAL_LITERAL: + LA95_261 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def argument_expression_list(self): - localctx = CParser.Argument_expression_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 70, self.RULE_argument_expression_list) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 508 - self.assignment_expression() - self.state = 510 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__28: - self.state = 509 - self.match(CParser.T__28) - - - self.state = 519 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__3: - self.state = 512 - self.match(CParser.T__3) - self.state = 513 - self.assignment_expression() - self.state = 515 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__28: - self.state = 514 - self.match(CParser.T__28) - - - self.state = 521 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == DECIMAL_LITERAL: + LA95_262 = self.input.LA(3) - class Additive_expressionContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def multiplicative_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Multiplicative_expressionContext) - else: - return self.getTypedRuleContext(CParser.Multiplicative_expressionContext,i) + elif LA95 == CHARACTER_LITERAL: + LA95_263 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_additive_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAdditive_expression" ): - listener.enterAdditive_expression(self) + elif LA95 == STRING_LITERAL: + LA95_264 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAdditive_expression" ): - listener.exitAdditive_expression(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == FLOATING_POINT_LITERAL: + LA95_265 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def additive_expression(self): - localctx = CParser.Additive_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 72, self.RULE_additive_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 522 - self.multiplicative_expression() - self.state = 529 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__43 or _la==CParser.T__44: - self.state = 527 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__43]: - self.state = 523 - self.match(CParser.T__43) - self.state = 524 - self.multiplicative_expression() - pass - elif token in [CParser.T__44]: - self.state = 525 - self.match(CParser.T__44) - self.state = 526 - self.multiplicative_expression() - pass - else: - raise NoViableAltException(self) + elif LA95 == 62: + LA95_266 = self.input.LA(3) - self.state = 531 - self._errHandler.sync(self) - _la = self._input.LA(1) + if (self.synpred188()) : + alt95 = 1 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Multiplicative_expressionContext(ParserRuleContext): + elif LA95 == 72: + LA95_267 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def cast_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Cast_expressionContext) - else: - return self.getTypedRuleContext(CParser.Cast_expressionContext,i) + elif LA95 == 73: + LA95_268 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_multiplicative_expression + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMultiplicative_expression" ): - listener.enterMultiplicative_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMultiplicative_expression" ): - listener.exitMultiplicative_expression(self) + elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79: + LA95_269 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 74: + LA95_270 = self.input.LA(3) - def multiplicative_expression(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Multiplicative_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 74, self.RULE_multiplicative_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 532 - self.cast_expression() - self.state = 541 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__41) | (1 << CParser.T__45) | (1 << CParser.T__46))) != 0): - self.state = 539 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__41]: - self.state = 533 - self.match(CParser.T__41) - self.state = 534 - self.cast_expression() - pass - elif token in [CParser.T__45]: - self.state = 535 - self.match(CParser.T__45) - self.state = 536 - self.cast_expression() - pass - elif token in [CParser.T__46]: - self.state = 537 - self.match(CParser.T__46) - self.state = 538 - self.cast_expression() - pass - else: - raise NoViableAltException(self) - self.state = 543 - self._errHandler.sync(self) - _la = self._input.LA(1) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == 73: + LA95 = self.input.LA(2) + if LA95 == IDENTIFIER: + LA95_271 = self.input.LA(3) - class Cast_expressionContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def type_name(self): - return self.getTypedRuleContext(CParser.Type_nameContext,0) + elif LA95 == HEX_LITERAL: + LA95_272 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def cast_expression(self): - return self.getTypedRuleContext(CParser.Cast_expressionContext,0) + elif LA95 == OCTAL_LITERAL: + LA95_273 = self.input.LA(3) - def unary_expression(self): - return self.getTypedRuleContext(CParser.Unary_expressionContext,0) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_cast_expression + elif LA95 == DECIMAL_LITERAL: + LA95_274 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCast_expression" ): - listener.enterCast_expression(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCast_expression" ): - listener.exitCast_expression(self) + elif LA95 == CHARACTER_LITERAL: + LA95_275 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def cast_expression(self): + elif LA95 == STRING_LITERAL: + LA95_276 = self.input.LA(3) - localctx = CParser.Cast_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 76, self.RULE_cast_expression) - try: - self.state = 550 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,70,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 544 - self.match(CParser.T__37) - self.state = 545 - self.type_name() - self.state = 546 - self.match(CParser.T__38) - self.state = 547 - self.cast_expression() - pass + if (self.synpred188()) : + alt95 = 1 - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 549 - self.unary_expression() - pass + elif LA95 == FLOATING_POINT_LITERAL: + LA95_277 = self.input.LA(3) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (self.synpred188()) : + alt95 = 1 - class Unary_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + elif LA95 == 62: + LA95_278 = self.input.LA(3) - def postfix_expression(self): - return self.getTypedRuleContext(CParser.Postfix_expressionContext,0) + if (self.synpred188()) : + alt95 = 1 - def unary_expression(self): - return self.getTypedRuleContext(CParser.Unary_expressionContext,0) + elif LA95 == 72: + LA95_279 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def unary_operator(self): - return self.getTypedRuleContext(CParser.Unary_operatorContext,0) + elif LA95 == 73: + LA95_280 = self.input.LA(3) - def cast_expression(self): - return self.getTypedRuleContext(CParser.Cast_expressionContext,0) + if (self.synpred188()) : + alt95 = 1 - def type_name(self): - return self.getTypedRuleContext(CParser.Type_nameContext,0) + elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79: + LA95_281 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_unary_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnary_expression" ): - listener.enterUnary_expression(self) + elif LA95 == 74: + LA95_282 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnary_expression" ): - listener.exitUnary_expression(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79: + LA95 = self.input.LA(2) + if LA95 == 62: + LA95_283 = self.input.LA(3) - def unary_expression(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Unary_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 78, self.RULE_unary_expression) - try: - self.state = 567 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,71,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 552 - self.postfix_expression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 553 - self.match(CParser.T__47) - self.state = 554 - self.unary_expression() - pass - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 555 - self.match(CParser.T__48) - self.state = 556 - self.unary_expression() - pass + elif LA95 == IDENTIFIER: + LA95_284 = self.input.LA(3) - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 557 - self.unary_operator() - self.state = 558 - self.cast_expression() - pass + if (self.synpred188()) : + alt95 = 1 - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 560 - self.match(CParser.T__49) - self.state = 561 - self.unary_expression() - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 562 - self.match(CParser.T__49) - self.state = 563 - self.match(CParser.T__37) - self.state = 564 - self.type_name() - self.state = 565 - self.match(CParser.T__38) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class Postfix_expressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.FuncCallText = '' - self.p = None # Primary_expressionContext - self.a = None # Token - self.c = None # Argument_expression_listContext - self.b = None # Token - self.x = None # Token - self.y = None # Token - self.z = None # Token - - def primary_expression(self): - return self.getTypedRuleContext(CParser.Primary_expressionContext,0) - - - def expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.ExpressionContext) - else: - return self.getTypedRuleContext(CParser.ExpressionContext,i) + elif LA95 == HEX_LITERAL: + LA95_285 = self.input.LA(3) - def macro_parameter_list(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Macro_parameter_listContext) - else: - return self.getTypedRuleContext(CParser.Macro_parameter_listContext,i) + if (self.synpred188()) : + alt95 = 1 - def argument_expression_list(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Argument_expression_listContext) - else: - return self.getTypedRuleContext(CParser.Argument_expression_listContext,i) + elif LA95 == OCTAL_LITERAL: + LA95_286 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def IDENTIFIER(self, i:int=None): - if i is None: - return self.getTokens(CParser.IDENTIFIER) - else: - return self.getToken(CParser.IDENTIFIER, i) - def getRuleIndex(self): - return CParser.RULE_postfix_expression + elif LA95 == DECIMAL_LITERAL: + LA95_287 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPostfix_expression" ): - listener.enterPostfix_expression(self) + if (self.synpred188()) : + alt95 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPostfix_expression" ): - listener.exitPostfix_expression(self) + elif LA95 == CHARACTER_LITERAL: + LA95_288 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def postfix_expression(self): + elif LA95 == STRING_LITERAL: + LA95_289 = self.input.LA(3) - localctx = CParser.Postfix_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 80, self.RULE_postfix_expression) + if (self.synpred188()) : + alt95 = 1 - self.FuncCallText='' - - try: - self.enterOuterAlt(localctx, 1) - self.state = 569 - localctx.p = self.primary_expression() - self.FuncCallText += (None if localctx.p is None else self._input.getText((localctx.p.start,localctx.p.stop))) - self.state = 600 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,73,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 598 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,72,self._ctx) - if la_ == 1: - self.state = 571 - self.match(CParser.T__39) - self.state = 572 - self.expression() - self.state = 573 - self.match(CParser.T__40) - pass - - elif la_ == 2: - self.state = 575 - self.match(CParser.T__37) - self.state = 576 - localctx.a = self.match(CParser.T__38) - self.StoreFunctionCalling((None if localctx.p is None else localctx.p.start).line, (None if localctx.p is None else localctx.p.start).column, (0 if localctx.a is None else localctx.a.line), localctx.a.start.column, self.FuncCallText, '') - pass - - elif la_ == 3: - self.state = 578 - self.match(CParser.T__37) - self.state = 579 - localctx.c = self.argument_expression_list() - self.state = 580 - localctx.b = self.match(CParser.T__38) - self.StoreFunctionCalling((None if localctx.p is None else localctx.p.start).line, (None if localctx.p is None else localctx.p.start).column, (0 if localctx.b is None else localctx.b.line), localctx.b.column, self.FuncCallText, (None if localctx.c is None else self._input.getText((localctx.c.start,localctx.c.stop)))) - pass - - elif la_ == 4: - self.state = 583 - self.match(CParser.T__37) - self.state = 584 - self.macro_parameter_list() - self.state = 585 - self.match(CParser.T__38) - pass - - elif la_ == 5: - self.state = 587 - self.match(CParser.T__50) - self.state = 588 - localctx.x = self.match(CParser.IDENTIFIER) - self.FuncCallText += '.' + (None if localctx.x is None else localctx.x.text) - pass - - elif la_ == 6: - self.state = 590 - self.match(CParser.T__41) - self.state = 591 - localctx.y = self.match(CParser.IDENTIFIER) - self.FuncCallText = (None if localctx.y is None else localctx.y.text) - pass - - elif la_ == 7: - self.state = 593 - self.match(CParser.T__51) - self.state = 594 - localctx.z = self.match(CParser.IDENTIFIER) - self.FuncCallText += '->' + (None if localctx.z is None else localctx.z.text) - pass - - elif la_ == 8: - self.state = 596 - self.match(CParser.T__47) - pass - - elif la_ == 9: - self.state = 597 - self.match(CParser.T__48) - pass - - - self.state = 602 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,73,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Macro_parameter_listContext(ParserRuleContext): + elif LA95 == FLOATING_POINT_LITERAL: + LA95_290 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def parameter_declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Parameter_declarationContext) - else: - return self.getTypedRuleContext(CParser.Parameter_declarationContext,i) + elif LA95 == 72: + LA95_291 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_macro_parameter_list + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMacro_parameter_list" ): - listener.enterMacro_parameter_list(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMacro_parameter_list" ): - listener.exitMacro_parameter_list(self) + elif LA95 == 73: + LA95_292 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79: + LA95_293 = self.input.LA(3) - def macro_parameter_list(self): + if (self.synpred188()) : + alt95 = 1 - localctx = CParser.Macro_parameter_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 82, self.RULE_macro_parameter_list) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 603 - self.parameter_declaration() - self.state = 608 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__3: - self.state = 604 - self.match(CParser.T__3) - self.state = 605 - self.parameter_declaration() - self.state = 610 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Unary_operatorContext(ParserRuleContext): + elif LA95 == 74: + LA95_294 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_unary_operator - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnary_operator" ): - listener.enterUnary_operator(self) + elif LA95 == 74: + LA95 = self.input.LA(2) + if LA95 == 62: + LA95_295 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnary_operator" ): - listener.exitUnary_operator(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == IDENTIFIER: + LA95_296 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def unary_operator(self): - localctx = CParser.Unary_operatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 84, self.RULE_unary_operator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 611 - _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__41) | (1 << CParser.T__43) | (1 << CParser.T__44) | (1 << CParser.T__52) | (1 << CParser.T__53) | (1 << CParser.T__54))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == HEX_LITERAL: + LA95_297 = self.input.LA(3) - class Primary_expressionContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + elif LA95 == OCTAL_LITERAL: + LA95_298 = self.input.LA(3) - def constant(self): - return self.getTypedRuleContext(CParser.ConstantContext,0) + if (self.synpred188()) : + alt95 = 1 - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + elif LA95 == DECIMAL_LITERAL: + LA95_299 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def getRuleIndex(self): - return CParser.RULE_primary_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimary_expression" ): - listener.enterPrimary_expression(self) + elif LA95 == CHARACTER_LITERAL: + LA95_300 = self.input.LA(3) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimary_expression" ): - listener.exitPrimary_expression(self) + if (self.synpred188()) : + alt95 = 1 + elif LA95 == STRING_LITERAL: + LA95_301 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def primary_expression(self): - localctx = CParser.Primary_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 86, self.RULE_primary_expression) - try: - self.state = 619 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,75,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 613 - self.match(CParser.IDENTIFIER) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 614 - self.constant() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 615 - self.match(CParser.T__37) - self.state = 616 - self.expression() - self.state = 617 - self.match(CParser.T__38) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif LA95 == FLOATING_POINT_LITERAL: + LA95_302 = self.input.LA(3) - class ConstantContext(ParserRuleContext): + if (self.synpred188()) : + alt95 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def HEX_LITERAL(self): - return self.getToken(CParser.HEX_LITERAL, 0) + elif LA95 == 72: + LA95_303 = self.input.LA(3) - def OCTAL_LITERAL(self): - return self.getToken(CParser.OCTAL_LITERAL, 0) + if (self.synpred188()) : + alt95 = 1 - def DECIMAL_LITERAL(self): - return self.getToken(CParser.DECIMAL_LITERAL, 0) - def CHARACTER_LITERAL(self): - return self.getToken(CParser.CHARACTER_LITERAL, 0) + elif LA95 == 73: + LA95_304 = self.input.LA(3) - def IDENTIFIER(self, i:int=None): - if i is None: - return self.getTokens(CParser.IDENTIFIER) - else: - return self.getToken(CParser.IDENTIFIER, i) + if (self.synpred188()) : + alt95 = 1 - def STRING_LITERAL(self, i:int=None): - if i is None: - return self.getTokens(CParser.STRING_LITERAL) - else: - return self.getToken(CParser.STRING_LITERAL, i) - def FLOATING_POINT_LITERAL(self): - return self.getToken(CParser.FLOATING_POINT_LITERAL, 0) + elif LA95 == 66 or LA95 == 68 or LA95 == 69 or LA95 == 77 or LA95 == 78 or LA95 == 79: + LA95_305 = self.input.LA(3) - def getRuleIndex(self): - return CParser.RULE_constant + if (self.synpred188()) : + alt95 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstant" ): - listener.enterConstant(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstant" ): - listener.exitConstant(self) + elif LA95 == 74: + LA95_306 = self.input.LA(3) + if (self.synpred188()) : + alt95 = 1 - def constant(self): + elif LA95 == 25 or LA95 == 26 or LA95 == 29 or LA95 == 30 or LA95 == 31 or LA95 == 32 or LA95 == 33 or LA95 == 34 or LA95 == 35 or LA95 == 36 or LA95 == 37 or LA95 == 38 or LA95 == 39 or LA95 == 40 or LA95 == 41 or LA95 == 42 or LA95 == 43 or LA95 == 45 or LA95 == 46 or LA95 == 48 or LA95 == 49 or LA95 == 50 or LA95 == 51 or LA95 == 52 or LA95 == 53 or LA95 == 54 or LA95 == 55 or LA95 == 56 or LA95 == 57 or LA95 == 58 or LA95 == 59 or LA95 == 60 or LA95 == 61 or LA95 == 103 or LA95 == 104 or LA95 == 105 or LA95 == 106 or LA95 == 107 or LA95 == 108 or LA95 == 110 or LA95 == 111 or LA95 == 112 or LA95 == 113 or LA95 == 114 or LA95 == 115 or LA95 == 116 or LA95 == 117: + alt95 = 1 - localctx = CParser.ConstantContext(self, self._ctx, self.state) - self.enterRule(localctx, 88, self.RULE_constant) - self._la = 0 # Token type - try: - self.state = 647 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.HEX_LITERAL]: - self.enterOuterAlt(localctx, 1) - self.state = 621 - self.match(CParser.HEX_LITERAL) - pass - elif token in [CParser.OCTAL_LITERAL]: - self.enterOuterAlt(localctx, 2) - self.state = 622 - self.match(CParser.OCTAL_LITERAL) - pass - elif token in [CParser.DECIMAL_LITERAL]: - self.enterOuterAlt(localctx, 3) - self.state = 623 - self.match(CParser.DECIMAL_LITERAL) - pass - elif token in [CParser.CHARACTER_LITERAL]: - self.enterOuterAlt(localctx, 4) - self.state = 624 - self.match(CParser.CHARACTER_LITERAL) - pass - elif token in [CParser.IDENTIFIER, CParser.STRING_LITERAL]: - self.enterOuterAlt(localctx, 5) - self.state = 636 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 628 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.IDENTIFIER: - self.state = 625 - self.match(CParser.IDENTIFIER) - self.state = 630 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 632 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 631 - self.match(CParser.STRING_LITERAL) - - else: - raise NoViableAltException(self) - self.state = 634 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,77,self._ctx) + if alt95 == 1: + # C.g:0:0: statement + self.following.append(self.FOLLOW_statement_in_statement_list2242) + self.statement() + self.following.pop() + if self.failed: + return else: - raise NoViableAltException(self) - self.state = 638 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,78,self._ctx) - - self.state = 643 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.IDENTIFIER: - self.state = 640 - self.match(CParser.IDENTIFIER) - self.state = 645 - self._errHandler.sync(self) - _la = self._input.LA(1) - - pass - elif token in [CParser.FLOATING_POINT_LITERAL]: - self.enterOuterAlt(localctx, 6) - self.state = 646 - self.match(CParser.FLOATING_POINT_LITERAL) - pass - else: - raise NoViableAltException(self) + if cnt95 >= 1: + break #loop95 - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.failed = True + return - class ExpressionContext(ParserRuleContext): + eee = EarlyExitException(95, self.input) + raise eee - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + cnt95 += 1 - def assignment_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Assignment_expressionContext) - else: - return self.getTypedRuleContext(CParser.Assignment_expressionContext,i) - def getRuleIndex(self): - return CParser.RULE_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExpression" ): - listener.enterExpression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExpression" ): - listener.exitExpression(self) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 67, statement_list_StartIndex) + pass + return - def expression(self): + # $ANTLR end statement_list - localctx = CParser.ExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 90, self.RULE_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 649 - self.assignment_expression() - self.state = 654 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__3: - self.state = 650 - self.match(CParser.T__3) - self.state = 651 - self.assignment_expression() - self.state = 656 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + class expression_statement_return(object): + def __init__(self): + self.start = None + self.stop = None - class Constant_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def conditional_expression(self): - return self.getTypedRuleContext(CParser.Conditional_expressionContext,0) + # $ANTLR start expression_statement + # C.g:561:1: expression_statement : ( ';' | expression ';' ); + def expression_statement(self, ): + + retval = self.expression_statement_return() + retval.start = self.input.LT(1) + expression_statement_StartIndex = self.input.index() + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 68): + return retval + + # C.g:562:2: ( ';' | expression ';' ) + alt96 = 2 + LA96_0 = self.input.LA(1) + + if (LA96_0 == 25) : + alt96 = 1 + elif ((IDENTIFIER <= LA96_0 <= FLOATING_POINT_LITERAL) or LA96_0 == 62 or LA96_0 == 66 or (68 <= LA96_0 <= 69) or (72 <= LA96_0 <= 74) or (77 <= LA96_0 <= 79)) : + alt96 = 2 + else: + if self.backtracking > 0: + self.failed = True + return retval + nvae = NoViableAltException("561:1: expression_statement : ( ';' | expression ';' );", 96, 0, self.input) - def getRuleIndex(self): - return CParser.RULE_constant_expression + raise nvae - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstant_expression" ): - listener.enterConstant_expression(self) + if alt96 == 1: + # C.g:562:4: ';' + self.match(self.input, 25, self.FOLLOW_25_in_expression_statement2254) + if self.failed: + return retval - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstant_expression" ): - listener.exitConstant_expression(self) + elif alt96 == 2: + # C.g:563:4: expression ';' + self.following.append(self.FOLLOW_expression_in_expression_statement2259) + self.expression() + self.following.pop() + if self.failed: + return retval + self.match(self.input, 25, self.FOLLOW_25_in_expression_statement2261) + if self.failed: + return retval + retval.stop = self.input.LT(-1) - def constant_expression(self): - localctx = CParser.Constant_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 92, self.RULE_constant_expression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 657 - self.conditional_expression() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 68, expression_statement_StartIndex) - class Assignment_expressionContext(ParserRuleContext): + pass - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + return retval - def lvalue(self): - return self.getTypedRuleContext(CParser.LvalueContext,0) + # $ANTLR end expression_statement - def assignment_operator(self): - return self.getTypedRuleContext(CParser.Assignment_operatorContext,0) + # $ANTLR start selection_statement + # C.g:566:1: selection_statement : ( 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? | 'switch' '(' expression ')' statement ); + def selection_statement(self, ): + selection_statement_StartIndex = self.input.index() + e = None - def assignment_expression(self): - return self.getTypedRuleContext(CParser.Assignment_expressionContext,0) + + try: + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 69): + return + + # C.g:567:2: ( 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? | 'switch' '(' expression ')' statement ) + alt98 = 2 + LA98_0 = self.input.LA(1) + + if (LA98_0 == 108) : + alt98 = 1 + elif (LA98_0 == 110) : + alt98 = 2 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("566:1: selection_statement : ( 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? | 'switch' '(' expression ')' statement );", 98, 0, self.input) + + raise nvae + + if alt98 == 1: + # C.g:567:4: 'if' '(' e= expression ')' statement ( options {k=1; backtrack=false; } : 'else' statement )? + self.match(self.input, 108, self.FOLLOW_108_in_selection_statement2272) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_selection_statement2274) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_selection_statement2278) + e = self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_selection_statement2280) + if self.failed: + return + if self.backtracking == 0: + self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop)) + + self.following.append(self.FOLLOW_statement_in_selection_statement2284) + self.statement() + self.following.pop() + if self.failed: + return + # C.g:567:167: ( options {k=1; backtrack=false; } : 'else' statement )? + alt97 = 2 + LA97_0 = self.input.LA(1) + + if (LA97_0 == 109) : + alt97 = 1 + if alt97 == 1: + # C.g:567:200: 'else' statement + self.match(self.input, 109, self.FOLLOW_109_in_selection_statement2299) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_selection_statement2301) + self.statement() + self.following.pop() + if self.failed: + return + + + + + + elif alt98 == 2: + # C.g:568:4: 'switch' '(' expression ')' statement + self.match(self.input, 110, self.FOLLOW_110_in_selection_statement2308) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_selection_statement2310) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_selection_statement2312) + self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_selection_statement2314) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_selection_statement2316) + self.statement() + self.following.pop() + if self.failed: + return - def conditional_expression(self): - return self.getTypedRuleContext(CParser.Conditional_expressionContext,0) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 69, selection_statement_StartIndex) - def getRuleIndex(self): - return CParser.RULE_assignment_expression + pass - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAssignment_expression" ): - listener.enterAssignment_expression(self) + return - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAssignment_expression" ): - listener.exitAssignment_expression(self) + # $ANTLR end selection_statement + # $ANTLR start iteration_statement + # C.g:571:1: iteration_statement : ( 'while' '(' e= expression ')' statement | 'do' statement 'while' '(' e= expression ')' ';' | 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement ); + def iteration_statement(self, ): + iteration_statement_StartIndex = self.input.index() + e = None - def assignment_expression(self): - localctx = CParser.Assignment_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 94, self.RULE_assignment_expression) try: - self.state = 664 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,82,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 659 - self.lvalue() - self.state = 660 - self.assignment_operator() - self.state = 661 - self.assignment_expression() - pass + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 70): + return + + # C.g:572:2: ( 'while' '(' e= expression ')' statement | 'do' statement 'while' '(' e= expression ')' ';' | 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement ) + alt100 = 3 + LA100 = self.input.LA(1) + if LA100 == 111: + alt100 = 1 + elif LA100 == 112: + alt100 = 2 + elif LA100 == 113: + alt100 = 3 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("571:1: iteration_statement : ( 'while' '(' e= expression ')' statement | 'do' statement 'while' '(' e= expression ')' ';' | 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement );", 100, 0, self.input) + + raise nvae + + if alt100 == 1: + # C.g:572:4: 'while' '(' e= expression ')' statement + self.match(self.input, 111, self.FOLLOW_111_in_iteration_statement2327) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_iteration_statement2329) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_iteration_statement2333) + e = self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_iteration_statement2335) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_iteration_statement2337) + self.statement() + self.following.pop() + if self.failed: + return + if self.backtracking == 0: + self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop)) - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 663 - self.conditional_expression() - pass - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + elif alt100 == 2: + # C.g:573:4: 'do' statement 'while' '(' e= expression ')' ';' + self.match(self.input, 112, self.FOLLOW_112_in_iteration_statement2344) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_iteration_statement2346) + self.statement() + self.following.pop() + if self.failed: + return + self.match(self.input, 111, self.FOLLOW_111_in_iteration_statement2348) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_iteration_statement2350) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_iteration_statement2354) + e = self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_iteration_statement2356) + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_iteration_statement2358) + if self.failed: + return + if self.backtracking == 0: + self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop)) + + + + elif alt100 == 3: + # C.g:574:4: 'for' '(' expression_statement e= expression_statement ( expression )? ')' statement + self.match(self.input, 113, self.FOLLOW_113_in_iteration_statement2365) + if self.failed: + return + self.match(self.input, 62, self.FOLLOW_62_in_iteration_statement2367) + if self.failed: + return + self.following.append(self.FOLLOW_expression_statement_in_iteration_statement2369) + self.expression_statement() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_expression_statement_in_iteration_statement2373) + e = self.expression_statement() + self.following.pop() + if self.failed: + return + # C.g:574:58: ( expression )? + alt99 = 2 + LA99_0 = self.input.LA(1) + + if ((IDENTIFIER <= LA99_0 <= FLOATING_POINT_LITERAL) or LA99_0 == 62 or LA99_0 == 66 or (68 <= LA99_0 <= 69) or (72 <= LA99_0 <= 74) or (77 <= LA99_0 <= 79)) : + alt99 = 1 + if alt99 == 1: + # C.g:0:0: expression + self.following.append(self.FOLLOW_expression_in_iteration_statement2375) + self.expression() + self.following.pop() + if self.failed: + return + - class LvalueContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + self.match(self.input, 63, self.FOLLOW_63_in_iteration_statement2378) + if self.failed: + return + self.following.append(self.FOLLOW_statement_in_iteration_statement2380) + self.statement() + self.following.pop() + if self.failed: + return + if self.backtracking == 0: + self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop)) - def unary_expression(self): - return self.getTypedRuleContext(CParser.Unary_expressionContext,0) - def getRuleIndex(self): - return CParser.RULE_lvalue - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLvalue" ): - listener.enterLvalue(self) + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) + finally: + if self.backtracking > 0: + self.memoize(self.input, 70, iteration_statement_StartIndex) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLvalue" ): - listener.exitLvalue(self) + pass + return + # $ANTLR end iteration_statement - def lvalue(self): + # $ANTLR start jump_statement + # C.g:577:1: jump_statement : ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' ); + def jump_statement(self, ): - localctx = CParser.LvalueContext(self, self._ctx, self.state) - self.enterRule(localctx, 96, self.RULE_lvalue) + jump_statement_StartIndex = self.input.index() try: - self.enterOuterAlt(localctx, 1) - self.state = 666 - self.unary_expression() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) + try: + if self.backtracking > 0 and self.alreadyParsedRule(self.input, 71): + return + + # C.g:578:2: ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' ) + alt101 = 5 + LA101 = self.input.LA(1) + if LA101 == 114: + alt101 = 1 + elif LA101 == 115: + alt101 = 2 + elif LA101 == 116: + alt101 = 3 + elif LA101 == 117: + LA101_4 = self.input.LA(2) + + if (LA101_4 == 25) : + alt101 = 4 + elif ((IDENTIFIER <= LA101_4 <= FLOATING_POINT_LITERAL) or LA101_4 == 62 or LA101_4 == 66 or (68 <= LA101_4 <= 69) or (72 <= LA101_4 <= 74) or (77 <= LA101_4 <= 79)) : + alt101 = 5 + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("577:1: jump_statement : ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' );", 101, 4, self.input) + + raise nvae + + else: + if self.backtracking > 0: + self.failed = True + return + + nvae = NoViableAltException("577:1: jump_statement : ( 'goto' IDENTIFIER ';' | 'continue' ';' | 'break' ';' | 'return' ';' | 'return' expression ';' );", 101, 0, self.input) + + raise nvae + + if alt101 == 1: + # C.g:578:4: 'goto' IDENTIFIER ';' + self.match(self.input, 114, self.FOLLOW_114_in_jump_statement2393) + if self.failed: + return + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_jump_statement2395) + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2397) + if self.failed: + return + + + elif alt101 == 2: + # C.g:579:4: 'continue' ';' + self.match(self.input, 115, self.FOLLOW_115_in_jump_statement2402) + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2404) + if self.failed: + return + + + elif alt101 == 3: + # C.g:580:4: 'break' ';' + self.match(self.input, 116, self.FOLLOW_116_in_jump_statement2409) + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2411) + if self.failed: + return + + + elif alt101 == 4: + # C.g:581:4: 'return' ';' + self.match(self.input, 117, self.FOLLOW_117_in_jump_statement2416) + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2418) + if self.failed: + return + + + elif alt101 == 5: + # C.g:582:4: 'return' expression ';' + self.match(self.input, 117, self.FOLLOW_117_in_jump_statement2423) + if self.failed: + return + self.following.append(self.FOLLOW_expression_in_jump_statement2425) + self.expression() + self.following.pop() + if self.failed: + return + self.match(self.input, 25, self.FOLLOW_25_in_jump_statement2427) + if self.failed: + return + + + + except RecognitionException as re: + self.reportError(re) + self.recover(self.input, re) finally: - self.exitRule() - return localctx + if self.backtracking > 0: + self.memoize(self.input, 71, jump_statement_StartIndex) + + pass + + return + + # $ANTLR end jump_statement + + # $ANTLR start synpred2 + def synpred2_fragment(self, ): + # C.g:119:6: ( declaration_specifiers ) + # C.g:119:6: declaration_specifiers + self.following.append(self.FOLLOW_declaration_specifiers_in_synpred2100) + self.declaration_specifiers() + self.following.pop() + if self.failed: + return + + + # $ANTLR end synpred2 + + + + # $ANTLR start synpred4 + def synpred4_fragment(self, ): + # C.g:119:4: ( ( declaration_specifiers )? declarator ( declaration )* '{' ) + # C.g:119:6: ( declaration_specifiers )? declarator ( declaration )* '{' + # C.g:119:6: ( declaration_specifiers )? + alt102 = 2 + LA102 = self.input.LA(1) + if LA102 == 29 or LA102 == 30 or LA102 == 31 or LA102 == 32 or LA102 == 33 or LA102 == 34 or LA102 == 35 or LA102 == 36 or LA102 == 37 or LA102 == 38 or LA102 == 39 or LA102 == 40 or LA102 == 41 or LA102 == 42 or LA102 == 45 or LA102 == 46 or LA102 == 48 or LA102 == 49 or LA102 == 50 or LA102 == 51 or LA102 == 52 or LA102 == 53 or LA102 == 54 or LA102 == 55 or LA102 == 56 or LA102 == 57 or LA102 == 61: + alt102 = 1 + elif LA102 == IDENTIFIER: + LA102 = self.input.LA(2) + if LA102 == 62: + LA102_21 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 29 or LA102 == 30 or LA102 == 31 or LA102 == 32 or LA102 == 33: + LA102_23 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 34: + LA102_24 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 35: + LA102_25 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 36: + LA102_26 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 37: + LA102_27 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 38: + LA102_28 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 39: + LA102_29 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 40: + LA102_30 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 41: + LA102_31 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 42: + LA102_32 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 45 or LA102 == 46: + LA102_33 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 48: + LA102_34 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == IDENTIFIER: + LA102_35 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 58: + LA102_36 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 66: + alt102 = 1 + elif LA102 == 59: + LA102_39 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 60: + LA102_40 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 49 or LA102 == 50 or LA102 == 51 or LA102 == 52 or LA102 == 53 or LA102 == 54 or LA102 == 55 or LA102 == 56 or LA102 == 57 or LA102 == 61: + LA102_41 = self.input.LA(3) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 58: + LA102_14 = self.input.LA(2) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 59: + LA102_16 = self.input.LA(2) + + if (self.synpred2()) : + alt102 = 1 + elif LA102 == 60: + LA102_17 = self.input.LA(2) + + if (self.synpred2()) : + alt102 = 1 + if alt102 == 1: + # C.g:0:0: declaration_specifiers + self.following.append(self.FOLLOW_declaration_specifiers_in_synpred4100) + self.declaration_specifiers() + self.following.pop() + if self.failed: + return + + + + self.following.append(self.FOLLOW_declarator_in_synpred4103) + self.declarator() + self.following.pop() + if self.failed: + return + # C.g:119:41: ( declaration )* + while True: #loop103 + alt103 = 2 + LA103_0 = self.input.LA(1) + + if (LA103_0 == IDENTIFIER or LA103_0 == 26 or (29 <= LA103_0 <= 42) or (45 <= LA103_0 <= 46) or (48 <= LA103_0 <= 61)) : + alt103 = 1 + + + if alt103 == 1: + # C.g:0:0: declaration + self.following.append(self.FOLLOW_declaration_in_synpred4105) + self.declaration() + self.following.pop() + if self.failed: + return - class Assignment_operatorContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + else: + break #loop103 - def getRuleIndex(self): - return CParser.RULE_assignment_operator + self.match(self.input, 43, self.FOLLOW_43_in_synpred4108) + if self.failed: + return - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAssignment_operator" ): - listener.enterAssignment_operator(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAssignment_operator" ): - listener.exitAssignment_operator(self) + # $ANTLR end synpred4 + # $ANTLR start synpred5 + def synpred5_fragment(self, ): + # C.g:120:4: ( declaration ) + # C.g:120:4: declaration + self.following.append(self.FOLLOW_declaration_in_synpred5118) + self.declaration() + self.following.pop() + if self.failed: + return - def assignment_operator(self): - localctx = CParser.Assignment_operatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 98, self.RULE_assignment_operator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 668 - _la = self._input.LA(1) - if not(((((_la - 5)) & ~0x3f) == 0 and ((1 << (_la - 5)) & ((1 << (CParser.T__4 - 5)) | (1 << (CParser.T__55 - 5)) | (1 << (CParser.T__56 - 5)) | (1 << (CParser.T__57 - 5)) | (1 << (CParser.T__58 - 5)) | (1 << (CParser.T__59 - 5)) | (1 << (CParser.T__60 - 5)) | (1 << (CParser.T__61 - 5)) | (1 << (CParser.T__62 - 5)) | (1 << (CParser.T__63 - 5)) | (1 << (CParser.T__64 - 5)))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR end synpred5 - class Conditional_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.e = None # Logical_or_expressionContext - def logical_or_expression(self): - return self.getTypedRuleContext(CParser.Logical_or_expressionContext,0) + # $ANTLR start synpred7 + def synpred7_fragment(self, ): + # C.g:146:6: ( declaration_specifiers ) + # C.g:146:6: declaration_specifiers + self.following.append(self.FOLLOW_declaration_specifiers_in_synpred7157) + self.declaration_specifiers() + self.following.pop() + if self.failed: + return - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + # $ANTLR end synpred7 - def conditional_expression(self): - return self.getTypedRuleContext(CParser.Conditional_expressionContext,0) + # $ANTLR start synpred10 + def synpred10_fragment(self, ): + # C.g:167:18: ( declaration_specifiers ) + # C.g:167:18: declaration_specifiers + self.following.append(self.FOLLOW_declaration_specifiers_in_synpred10207) + self.declaration_specifiers() + self.following.pop() + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_conditional_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConditional_expression" ): - listener.enterConditional_expression(self) + # $ANTLR end synpred10 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConditional_expression" ): - listener.exitConditional_expression(self) + # $ANTLR start synpred14 + def synpred14_fragment(self, ): + # C.g:184:7: ( type_specifier ) + # C.g:184:7: type_specifier + self.following.append(self.FOLLOW_type_specifier_in_synpred14272) + self.type_specifier() + self.following.pop() + if self.failed: + return - def conditional_expression(self): + # $ANTLR end synpred14 - localctx = CParser.Conditional_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 100, self.RULE_conditional_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 670 - localctx.e = self.logical_or_expression() - self.state = 677 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__65: - self.state = 671 - self.match(CParser.T__65) - self.state = 672 - self.expression() - self.state = 673 - self.match(CParser.T__22) - self.state = 674 - self.conditional_expression() - self.StorePredicateExpression((None if localctx.e is None else localctx.e.start).line, (None if localctx.e is None else localctx.e.start).column, (None if localctx.e is None else localctx.e.stop).line, (None if localctx.e is None else localctx.e.stop).column, (None if localctx.e is None else self._input.getText((localctx.e.start,localctx.e.stop)))) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR start synpred15 + def synpred15_fragment(self, ): + # C.g:185:13: ( type_qualifier ) + # C.g:185:13: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_synpred15286) + self.type_qualifier() + self.following.pop() + if self.failed: + return - class Logical_or_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR end synpred15 - def logical_and_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Logical_and_expressionContext) - else: - return self.getTypedRuleContext(CParser.Logical_and_expressionContext,i) - def getRuleIndex(self): - return CParser.RULE_logical_or_expression + # $ANTLR start synpred33 + def synpred33_fragment(self, ): + # C.g:225:16: ( type_qualifier ) + # C.g:225:16: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_synpred33444) + self.type_qualifier() + self.following.pop() + if self.failed: + return - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLogical_or_expression" ): - listener.enterLogical_or_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLogical_or_expression" ): - listener.exitLogical_or_expression(self) + # $ANTLR end synpred33 + # $ANTLR start synpred34 + def synpred34_fragment(self, ): + # C.g:225:4: ( IDENTIFIER ( type_qualifier )* declarator ) + # C.g:225:5: IDENTIFIER ( type_qualifier )* declarator + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_synpred34442) + if self.failed: + return + # C.g:225:16: ( type_qualifier )* + while True: #loop106 + alt106 = 2 + LA106 = self.input.LA(1) + if LA106 == 58: + LA106_2 = self.input.LA(2) - def logical_or_expression(self): + if (self.synpred33()) : + alt106 = 1 - localctx = CParser.Logical_or_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 102, self.RULE_logical_or_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 679 - self.logical_and_expression() - self.state = 684 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__66: - self.state = 680 - self.match(CParser.T__66) - self.state = 681 - self.logical_and_expression() - self.state = 686 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Logical_and_expressionContext(ParserRuleContext): + elif LA106 == 59: + LA106_3 = self.input.LA(2) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred33()) : + alt106 = 1 - def inclusive_or_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Inclusive_or_expressionContext) - else: - return self.getTypedRuleContext(CParser.Inclusive_or_expressionContext,i) + elif LA106 == 60: + LA106_4 = self.input.LA(2) - def getRuleIndex(self): - return CParser.RULE_logical_and_expression + if (self.synpred33()) : + alt106 = 1 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLogical_and_expression" ): - listener.enterLogical_and_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLogical_and_expression" ): - listener.exitLogical_and_expression(self) + elif LA106 == 49 or LA106 == 50 or LA106 == 51 or LA106 == 52 or LA106 == 53 or LA106 == 54 or LA106 == 55 or LA106 == 56 or LA106 == 57 or LA106 == 61: + alt106 = 1 + if alt106 == 1: + # C.g:0:0: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_synpred34444) + self.type_qualifier() + self.following.pop() + if self.failed: + return + else: + break #loop106 - def logical_and_expression(self): - localctx = CParser.Logical_and_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 104, self.RULE_logical_and_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 687 - self.inclusive_or_expression() - self.state = 692 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__67: - self.state = 688 - self.match(CParser.T__67) - self.state = 689 - self.inclusive_or_expression() - self.state = 694 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + self.following.append(self.FOLLOW_declarator_in_synpred34447) + self.declarator() + self.following.pop() + if self.failed: + return - class Inclusive_or_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR end synpred34 - def exclusive_or_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Exclusive_or_expressionContext) - else: - return self.getTypedRuleContext(CParser.Exclusive_or_expressionContext,i) - def getRuleIndex(self): - return CParser.RULE_inclusive_or_expression + # $ANTLR start synpred39 + def synpred39_fragment(self, ): + # C.g:253:6: ( type_qualifier ) + # C.g:253:6: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_synpred39566) + self.type_qualifier() + self.following.pop() + if self.failed: + return - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInclusive_or_expression" ): - listener.enterInclusive_or_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInclusive_or_expression" ): - listener.exitInclusive_or_expression(self) + # $ANTLR end synpred39 + # $ANTLR start synpred40 + def synpred40_fragment(self, ): + # C.g:253:23: ( type_specifier ) + # C.g:253:23: type_specifier + self.following.append(self.FOLLOW_type_specifier_in_synpred40570) + self.type_specifier() + self.following.pop() + if self.failed: + return - def inclusive_or_expression(self): - localctx = CParser.Inclusive_or_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 106, self.RULE_inclusive_or_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 695 - self.exclusive_or_expression() - self.state = 700 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__68: - self.state = 696 - self.match(CParser.T__68) - self.state = 697 - self.exclusive_or_expression() - self.state = 702 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR end synpred40 - class Exclusive_or_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def and_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.And_expressionContext) - else: - return self.getTypedRuleContext(CParser.And_expressionContext,i) + # $ANTLR start synpred66 + def synpred66_fragment(self, ): + # C.g:297:4: ( ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator ) + # C.g:297:4: ( pointer )? ( 'EFIAPI' )? ( 'EFI_BOOTSERVICE' )? ( 'EFI_RUNTIMESERVICE' )? direct_declarator + # C.g:297:4: ( pointer )? + alt111 = 2 + LA111_0 = self.input.LA(1) + if (LA111_0 == 66) : + alt111 = 1 + if alt111 == 1: + # C.g:0:0: pointer + self.following.append(self.FOLLOW_pointer_in_synpred66784) + self.pointer() + self.following.pop() + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_exclusive_or_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExclusive_or_expression" ): - listener.enterExclusive_or_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExclusive_or_expression" ): - listener.exitExclusive_or_expression(self) + # C.g:297:13: ( 'EFIAPI' )? + alt112 = 2 + LA112_0 = self.input.LA(1) + if (LA112_0 == 58) : + alt112 = 1 + if alt112 == 1: + # C.g:297:14: 'EFIAPI' + self.match(self.input, 58, self.FOLLOW_58_in_synpred66788) + if self.failed: + return - def exclusive_or_expression(self): + # C.g:297:25: ( 'EFI_BOOTSERVICE' )? + alt113 = 2 + LA113_0 = self.input.LA(1) - localctx = CParser.Exclusive_or_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 108, self.RULE_exclusive_or_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 703 - self.and_expression() - self.state = 708 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__69: - self.state = 704 - self.match(CParser.T__69) - self.state = 705 - self.and_expression() - self.state = 710 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (LA113_0 == 59) : + alt113 = 1 + if alt113 == 1: + # C.g:297:26: 'EFI_BOOTSERVICE' + self.match(self.input, 59, self.FOLLOW_59_in_synpred66793) + if self.failed: + return - class And_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def equality_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Equality_expressionContext) - else: - return self.getTypedRuleContext(CParser.Equality_expressionContext,i) + # C.g:297:46: ( 'EFI_RUNTIMESERVICE' )? + alt114 = 2 + LA114_0 = self.input.LA(1) + if (LA114_0 == 60) : + alt114 = 1 + if alt114 == 1: + # C.g:297:47: 'EFI_RUNTIMESERVICE' + self.match(self.input, 60, self.FOLLOW_60_in_synpred66798) + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_and_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnd_expression" ): - listener.enterAnd_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnd_expression" ): - listener.exitAnd_expression(self) + self.following.append(self.FOLLOW_direct_declarator_in_synpred66802) + self.direct_declarator() + self.following.pop() + if self.failed: + return + # $ANTLR end synpred66 - def and_expression(self): - localctx = CParser.And_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 110, self.RULE_and_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 711 - self.equality_expression() - self.state = 716 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__52: - self.state = 712 - self.match(CParser.T__52) - self.state = 713 - self.equality_expression() - self.state = 718 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR start synpred67 + def synpred67_fragment(self, ): + # C.g:303:15: ( declarator_suffix ) + # C.g:303:15: declarator_suffix + self.following.append(self.FOLLOW_declarator_suffix_in_synpred67821) + self.declarator_suffix() + self.following.pop() + if self.failed: + return - class Equality_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR end synpred67 - def relational_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Relational_expressionContext) - else: - return self.getTypedRuleContext(CParser.Relational_expressionContext,i) - def getRuleIndex(self): - return CParser.RULE_equality_expression + # $ANTLR start synpred69 + def synpred69_fragment(self, ): + # C.g:304:9: ( 'EFIAPI' ) + # C.g:304:9: 'EFIAPI' + self.match(self.input, 58, self.FOLLOW_58_in_synpred69830) + if self.failed: + return - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEquality_expression" ): - listener.enterEquality_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEquality_expression" ): - listener.exitEquality_expression(self) + # $ANTLR end synpred69 + # $ANTLR start synpred70 + def synpred70_fragment(self, ): + # C.g:304:35: ( declarator_suffix ) + # C.g:304:35: declarator_suffix + self.following.append(self.FOLLOW_declarator_suffix_in_synpred70838) + self.declarator_suffix() + self.following.pop() + if self.failed: + return - def equality_expression(self): - localctx = CParser.Equality_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 112, self.RULE_equality_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 719 - self.relational_expression() - self.state = 724 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__70 or _la==CParser.T__71: - self.state = 720 - _la = self._input.LA(1) - if not(_la==CParser.T__70 or _la==CParser.T__71): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - self.state = 721 - self.relational_expression() - self.state = 726 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR end synpred70 - class Relational_expressionContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def shift_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Shift_expressionContext) - else: - return self.getTypedRuleContext(CParser.Shift_expressionContext,i) + # $ANTLR start synpred73 + def synpred73_fragment(self, ): + # C.g:310:9: ( '(' parameter_type_list ')' ) + # C.g:310:9: '(' parameter_type_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_synpred73878) + if self.failed: + return + self.following.append(self.FOLLOW_parameter_type_list_in_synpred73880) + self.parameter_type_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_synpred73882) + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_relational_expression + # $ANTLR end synpred73 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterRelational_expression" ): - listener.enterRelational_expression(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitRelational_expression" ): - listener.exitRelational_expression(self) + # $ANTLR start synpred74 + def synpred74_fragment(self, ): + # C.g:311:9: ( '(' identifier_list ')' ) + # C.g:311:9: '(' identifier_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_synpred74892) + if self.failed: + return + self.following.append(self.FOLLOW_identifier_list_in_synpred74894) + self.identifier_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_synpred74896) + if self.failed: + return + # $ANTLR end synpred74 - def relational_expression(self): - localctx = CParser.Relational_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 114, self.RULE_relational_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 727 - self.shift_expression() - self.state = 732 - self._errHandler.sync(self) - _la = self._input.LA(1) - while ((((_la - 73)) & ~0x3f) == 0 and ((1 << (_la - 73)) & ((1 << (CParser.T__72 - 73)) | (1 << (CParser.T__73 - 73)) | (1 << (CParser.T__74 - 73)) | (1 << (CParser.T__75 - 73)))) != 0): - self.state = 728 - _la = self._input.LA(1) - if not(((((_la - 73)) & ~0x3f) == 0 and ((1 << (_la - 73)) & ((1 << (CParser.T__72 - 73)) | (1 << (CParser.T__73 - 73)) | (1 << (CParser.T__74 - 73)) | (1 << (CParser.T__75 - 73)))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - self.state = 729 - self.shift_expression() - self.state = 734 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Shift_expressionContext(ParserRuleContext): + # $ANTLR start synpred75 + def synpred75_fragment(self, ): + # C.g:316:8: ( type_qualifier ) + # C.g:316:8: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_synpred75921) + self.type_qualifier() + self.following.pop() + if self.failed: + return - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def additive_expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.Additive_expressionContext) - else: - return self.getTypedRuleContext(CParser.Additive_expressionContext,i) + # $ANTLR end synpred75 - def getRuleIndex(self): - return CParser.RULE_shift_expression - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterShift_expression" ): - listener.enterShift_expression(self) + # $ANTLR start synpred76 + def synpred76_fragment(self, ): + # C.g:316:24: ( pointer ) + # C.g:316:24: pointer + self.following.append(self.FOLLOW_pointer_in_synpred76924) + self.pointer() + self.following.pop() + if self.failed: + return - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitShift_expression" ): - listener.exitShift_expression(self) + # $ANTLR end synpred76 - def shift_expression(self): + # $ANTLR start synpred77 + def synpred77_fragment(self, ): + # C.g:316:4: ( '*' ( type_qualifier )+ ( pointer )? ) + # C.g:316:4: '*' ( type_qualifier )+ ( pointer )? + self.match(self.input, 66, self.FOLLOW_66_in_synpred77919) + if self.failed: + return + # C.g:316:8: ( type_qualifier )+ + cnt116 = 0 + while True: #loop116 + alt116 = 2 + LA116_0 = self.input.LA(1) - localctx = CParser.Shift_expressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 116, self.RULE_shift_expression) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 735 - self.additive_expression() - self.state = 740 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==CParser.T__76 or _la==CParser.T__77: - self.state = 736 - _la = self._input.LA(1) - if not(_la==CParser.T__76 or _la==CParser.T__77): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - self.state = 737 - self.additive_expression() - self.state = 742 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if ((49 <= LA116_0 <= 61)) : + alt116 = 1 - class StatementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if alt116 == 1: + # C.g:0:0: type_qualifier + self.following.append(self.FOLLOW_type_qualifier_in_synpred77921) + self.type_qualifier() + self.following.pop() + if self.failed: + return - def labeled_statement(self): - return self.getTypedRuleContext(CParser.Labeled_statementContext,0) + else: + if cnt116 >= 1: + break #loop116 - def compound_statement(self): - return self.getTypedRuleContext(CParser.Compound_statementContext,0) + if self.backtracking > 0: + self.failed = True + return + eee = EarlyExitException(116, self.input) + raise eee - def expression_statement(self): - return self.getTypedRuleContext(CParser.Expression_statementContext,0) + cnt116 += 1 - def selection_statement(self): - return self.getTypedRuleContext(CParser.Selection_statementContext,0) + # C.g:316:24: ( pointer )? + alt117 = 2 + LA117_0 = self.input.LA(1) + if (LA117_0 == 66) : + alt117 = 1 + if alt117 == 1: + # C.g:0:0: pointer + self.following.append(self.FOLLOW_pointer_in_synpred77924) + self.pointer() + self.following.pop() + if self.failed: + return - def iteration_statement(self): - return self.getTypedRuleContext(CParser.Iteration_statementContext,0) - def jump_statement(self): - return self.getTypedRuleContext(CParser.Jump_statementContext,0) - def macro_statement(self): - return self.getTypedRuleContext(CParser.Macro_statementContext,0) + # $ANTLR end synpred77 - def asm2_statement(self): - return self.getTypedRuleContext(CParser.Asm2_statementContext,0) + # $ANTLR start synpred78 + def synpred78_fragment(self, ): + # C.g:317:4: ( '*' pointer ) + # C.g:317:4: '*' pointer + self.match(self.input, 66, self.FOLLOW_66_in_synpred78930) + if self.failed: + return + self.following.append(self.FOLLOW_pointer_in_synpred78932) + self.pointer() + self.following.pop() + if self.failed: + return - def asm1_statement(self): - return self.getTypedRuleContext(CParser.Asm1_statementContext,0) + # $ANTLR end synpred78 - def asm_statement(self): - return self.getTypedRuleContext(CParser.Asm_statementContext,0) - def declaration(self): - return self.getTypedRuleContext(CParser.DeclarationContext,0) + # $ANTLR start synpred81 + def synpred81_fragment(self, ): + # C.g:326:32: ( 'OPTIONAL' ) + # C.g:326:32: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_synpred81977) + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_statement + # $ANTLR end synpred81 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatement" ): - listener.enterStatement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatement" ): - listener.exitStatement(self) + # $ANTLR start synpred82 + def synpred82_fragment(self, ): + # C.g:326:27: ( ',' ( 'OPTIONAL' )? parameter_declaration ) + # C.g:326:27: ',' ( 'OPTIONAL' )? parameter_declaration + self.match(self.input, 27, self.FOLLOW_27_in_synpred82974) + if self.failed: + return + # C.g:326:31: ( 'OPTIONAL' )? + alt119 = 2 + LA119_0 = self.input.LA(1) + if (LA119_0 == 53) : + LA119_1 = self.input.LA(2) + if (self.synpred81()) : + alt119 = 1 + if alt119 == 1: + # C.g:326:32: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_synpred82977) + if self.failed: + return - def statement(self): - localctx = CParser.StatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 118, self.RULE_statement) - try: - self.state = 754 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,92,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 743 - self.labeled_statement() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 744 - self.compound_statement() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 745 - self.expression_statement() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 746 - self.selection_statement() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 747 - self.iteration_statement() - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 748 - self.jump_statement() - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 749 - self.macro_statement() - pass - - elif la_ == 8: - self.enterOuterAlt(localctx, 8) - self.state = 750 - self.asm2_statement() - pass - - elif la_ == 9: - self.enterOuterAlt(localctx, 9) - self.state = 751 - self.asm1_statement() - pass - - elif la_ == 10: - self.enterOuterAlt(localctx, 10) - self.state = 752 - self.asm_statement() - pass - - elif la_ == 11: - self.enterOuterAlt(localctx, 11) - self.state = 753 - self.declaration() - pass + self.following.append(self.FOLLOW_parameter_declaration_in_synpred82981) + self.parameter_declaration() + self.following.pop() + if self.failed: + return - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Asm2_statementContext(ParserRuleContext): + # $ANTLR end synpred82 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) - def getRuleIndex(self): - return CParser.RULE_asm2_statement + # $ANTLR start synpred83 + def synpred83_fragment(self, ): + # C.g:330:28: ( declarator ) + # C.g:330:28: declarator + self.following.append(self.FOLLOW_declarator_in_synpred83997) + self.declarator() + self.following.pop() + if self.failed: + return - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAsm2_statement" ): - listener.enterAsm2_statement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAsm2_statement" ): - listener.exitAsm2_statement(self) + # $ANTLR end synpred83 + # $ANTLR start synpred84 + def synpred84_fragment(self, ): + # C.g:330:39: ( abstract_declarator ) + # C.g:330:39: abstract_declarator + self.following.append(self.FOLLOW_abstract_declarator_in_synpred84999) + self.abstract_declarator() + self.following.pop() + if self.failed: + return - def asm2_statement(self): - localctx = CParser.Asm2_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 120, self.RULE_asm2_statement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 757 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==CParser.T__78: - self.state = 756 - self.match(CParser.T__78) - - - self.state = 759 - self.match(CParser.IDENTIFIER) - self.state = 760 - self.match(CParser.T__37) - self.state = 764 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,94,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 761 - _la = self._input.LA(1) - if _la <= 0 or _la==CParser.T__1: - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - self.state = 766 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,94,self._ctx) - - self.state = 767 - self.match(CParser.T__38) - self.state = 768 - self.match(CParser.T__1) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR end synpred84 - class Asm1_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR start synpred86 + def synpred86_fragment(self, ): + # C.g:330:4: ( declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? ) + # C.g:330:4: declaration_specifiers ( declarator | abstract_declarator )* ( 'OPTIONAL' )? + self.following.append(self.FOLLOW_declaration_specifiers_in_synpred86994) + self.declaration_specifiers() + self.following.pop() + if self.failed: + return + # C.g:330:27: ( declarator | abstract_declarator )* + while True: #loop120 + alt120 = 3 + LA120 = self.input.LA(1) + if LA120 == 66: + LA120_3 = self.input.LA(2) - def getRuleIndex(self): - return CParser.RULE_asm1_statement + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAsm1_statement" ): - listener.enterAsm1_statement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAsm1_statement" ): - listener.exitAsm1_statement(self) + elif LA120 == IDENTIFIER or LA120 == 58 or LA120 == 59 or LA120 == 60: + alt120 = 1 + elif LA120 == 62: + LA120 = self.input.LA(2) + if LA120 == 29 or LA120 == 30 or LA120 == 31 or LA120 == 32 or LA120 == 33 or LA120 == 34 or LA120 == 35 or LA120 == 36 or LA120 == 37 or LA120 == 38 or LA120 == 39 or LA120 == 40 or LA120 == 41 or LA120 == 42 or LA120 == 45 or LA120 == 46 or LA120 == 48 or LA120 == 49 or LA120 == 50 or LA120 == 51 or LA120 == 52 or LA120 == 53 or LA120 == 54 or LA120 == 55 or LA120 == 56 or LA120 == 57 or LA120 == 61 or LA120 == 63 or LA120 == 64: + alt120 = 2 + elif LA120 == 58: + LA120_21 = self.input.LA(3) + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 + elif LA120 == 66: + LA120_22 = self.input.LA(3) - def asm1_statement(self): + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 - localctx = CParser.Asm1_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 122, self.RULE_asm1_statement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 770 - self.match(CParser.T__79) - self.state = 771 - self.match(CParser.T__0) - self.state = 775 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__0) | (1 << CParser.T__1) | (1 << CParser.T__2) | (1 << CParser.T__3) | (1 << CParser.T__4) | (1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9) | (1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__22) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36) | (1 << CParser.T__37) | (1 << CParser.T__38) | (1 << CParser.T__39) | (1 << CParser.T__40) | (1 << CParser.T__41) | (1 << CParser.T__42) | (1 << CParser.T__43) | (1 << CParser.T__44) | (1 << CParser.T__45) | (1 << CParser.T__46) | (1 << CParser.T__47) | (1 << CParser.T__48) | (1 << CParser.T__49) | (1 << CParser.T__50) | (1 << CParser.T__51) | (1 << CParser.T__52) | (1 << CParser.T__53) | (1 << CParser.T__54) | (1 << CParser.T__55) | (1 << CParser.T__56) | (1 << CParser.T__57) | (1 << CParser.T__58) | (1 << CParser.T__59) | (1 << CParser.T__60) | (1 << CParser.T__61) | (1 << CParser.T__62))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (CParser.T__63 - 64)) | (1 << (CParser.T__64 - 64)) | (1 << (CParser.T__65 - 64)) | (1 << (CParser.T__66 - 64)) | (1 << (CParser.T__67 - 64)) | (1 << (CParser.T__68 - 64)) | (1 << (CParser.T__69 - 64)) | (1 << (CParser.T__70 - 64)) | (1 << (CParser.T__71 - 64)) | (1 << (CParser.T__72 - 64)) | (1 << (CParser.T__73 - 64)) | (1 << (CParser.T__74 - 64)) | (1 << (CParser.T__75 - 64)) | (1 << (CParser.T__76 - 64)) | (1 << (CParser.T__77 - 64)) | (1 << (CParser.T__78 - 64)) | (1 << (CParser.T__79 - 64)) | (1 << (CParser.T__80 - 64)) | (1 << (CParser.T__81 - 64)) | (1 << (CParser.T__82 - 64)) | (1 << (CParser.T__83 - 64)) | (1 << (CParser.T__84 - 64)) | (1 << (CParser.T__85 - 64)) | (1 << (CParser.T__86 - 64)) | (1 << (CParser.T__87 - 64)) | (1 << (CParser.T__88 - 64)) | (1 << (CParser.T__89 - 64)) | (1 << (CParser.T__90 - 64)) | (1 << (CParser.T__91 - 64)) | (1 << (CParser.IDENTIFIER - 64)) | (1 << (CParser.CHARACTER_LITERAL - 64)) | (1 << (CParser.STRING_LITERAL - 64)) | (1 << (CParser.HEX_LITERAL - 64)) | (1 << (CParser.DECIMAL_LITERAL - 64)) | (1 << (CParser.OCTAL_LITERAL - 64)) | (1 << (CParser.FLOATING_POINT_LITERAL - 64)) | (1 << (CParser.WS - 64)) | (1 << (CParser.BS - 64)) | (1 << (CParser.UnicodeVocabulary - 64)) | (1 << (CParser.COMMENT - 64)) | (1 << (CParser.LINE_COMMENT - 64)) | (1 << (CParser.LINE_COMMAND - 64)))) != 0): - self.state = 772 - _la = self._input.LA(1) - if _la <= 0 or _la==CParser.T__19: - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - self.state = 777 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 778 - self.match(CParser.T__19) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Asm_statementContext(ParserRuleContext): + elif LA120 == 59: + LA120_23 = self.input.LA(3) - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 - def getRuleIndex(self): - return CParser.RULE_asm_statement + elif LA120 == 60: + LA120_24 = self.input.LA(3) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAsm_statement" ): - listener.enterAsm_statement(self) + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAsm_statement" ): - listener.exitAsm_statement(self) + elif LA120 == IDENTIFIER: + LA120_25 = self.input.LA(3) + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 - def asm_statement(self): + elif LA120 == 62: + LA120_26 = self.input.LA(3) - localctx = CParser.Asm_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 124, self.RULE_asm_statement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 780 - self.match(CParser.T__80) - self.state = 781 - self.match(CParser.T__0) - self.state = 785 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__0) | (1 << CParser.T__1) | (1 << CParser.T__2) | (1 << CParser.T__3) | (1 << CParser.T__4) | (1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9) | (1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__22) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36) | (1 << CParser.T__37) | (1 << CParser.T__38) | (1 << CParser.T__39) | (1 << CParser.T__40) | (1 << CParser.T__41) | (1 << CParser.T__42) | (1 << CParser.T__43) | (1 << CParser.T__44) | (1 << CParser.T__45) | (1 << CParser.T__46) | (1 << CParser.T__47) | (1 << CParser.T__48) | (1 << CParser.T__49) | (1 << CParser.T__50) | (1 << CParser.T__51) | (1 << CParser.T__52) | (1 << CParser.T__53) | (1 << CParser.T__54) | (1 << CParser.T__55) | (1 << CParser.T__56) | (1 << CParser.T__57) | (1 << CParser.T__58) | (1 << CParser.T__59) | (1 << CParser.T__60) | (1 << CParser.T__61) | (1 << CParser.T__62))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (CParser.T__63 - 64)) | (1 << (CParser.T__64 - 64)) | (1 << (CParser.T__65 - 64)) | (1 << (CParser.T__66 - 64)) | (1 << (CParser.T__67 - 64)) | (1 << (CParser.T__68 - 64)) | (1 << (CParser.T__69 - 64)) | (1 << (CParser.T__70 - 64)) | (1 << (CParser.T__71 - 64)) | (1 << (CParser.T__72 - 64)) | (1 << (CParser.T__73 - 64)) | (1 << (CParser.T__74 - 64)) | (1 << (CParser.T__75 - 64)) | (1 << (CParser.T__76 - 64)) | (1 << (CParser.T__77 - 64)) | (1 << (CParser.T__78 - 64)) | (1 << (CParser.T__79 - 64)) | (1 << (CParser.T__80 - 64)) | (1 << (CParser.T__81 - 64)) | (1 << (CParser.T__82 - 64)) | (1 << (CParser.T__83 - 64)) | (1 << (CParser.T__84 - 64)) | (1 << (CParser.T__85 - 64)) | (1 << (CParser.T__86 - 64)) | (1 << (CParser.T__87 - 64)) | (1 << (CParser.T__88 - 64)) | (1 << (CParser.T__89 - 64)) | (1 << (CParser.T__90 - 64)) | (1 << (CParser.T__91 - 64)) | (1 << (CParser.IDENTIFIER - 64)) | (1 << (CParser.CHARACTER_LITERAL - 64)) | (1 << (CParser.STRING_LITERAL - 64)) | (1 << (CParser.HEX_LITERAL - 64)) | (1 << (CParser.DECIMAL_LITERAL - 64)) | (1 << (CParser.OCTAL_LITERAL - 64)) | (1 << (CParser.FLOATING_POINT_LITERAL - 64)) | (1 << (CParser.WS - 64)) | (1 << (CParser.BS - 64)) | (1 << (CParser.UnicodeVocabulary - 64)) | (1 << (CParser.COMMENT - 64)) | (1 << (CParser.LINE_COMMENT - 64)) | (1 << (CParser.LINE_COMMAND - 64)))) != 0): - self.state = 782 - _la = self._input.LA(1) - if _la <= 0 or _la==CParser.T__19: - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - self.state = 787 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 788 - self.match(CParser.T__19) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + if (self.synpred83()) : + alt120 = 1 + elif (self.synpred84()) : + alt120 = 2 - class Macro_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + elif LA120 == 64: + alt120 = 2 - def declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.DeclarationContext) - else: - return self.getTypedRuleContext(CParser.DeclarationContext,i) + if alt120 == 1: + # C.g:330:28: declarator + self.following.append(self.FOLLOW_declarator_in_synpred86997) + self.declarator() + self.following.pop() + if self.failed: + return - def statement_list(self): - return self.getTypedRuleContext(CParser.Statement_listContext,0) + elif alt120 == 2: + # C.g:330:39: abstract_declarator + self.following.append(self.FOLLOW_abstract_declarator_in_synpred86999) + self.abstract_declarator() + self.following.pop() + if self.failed: + return - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + else: + break #loop120 - def getRuleIndex(self): - return CParser.RULE_macro_statement + # C.g:330:61: ( 'OPTIONAL' )? + alt121 = 2 + LA121_0 = self.input.LA(1) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMacro_statement" ): - listener.enterMacro_statement(self) + if (LA121_0 == 53) : + alt121 = 1 + if alt121 == 1: + # C.g:330:62: 'OPTIONAL' + self.match(self.input, 53, self.FOLLOW_53_in_synpred861004) + if self.failed: + return - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMacro_statement" ): - listener.exitMacro_statement(self) - def macro_statement(self): + # $ANTLR end synpred86 - localctx = CParser.Macro_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 126, self.RULE_macro_statement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 790 - self.match(CParser.IDENTIFIER) - self.state = 791 - self.match(CParser.T__37) - self.state = 795 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,97,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 792 - self.declaration() - self.state = 797 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,97,self._ctx) - - self.state = 799 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,98,self._ctx) - if la_ == 1: - self.state = 798 - self.statement_list() - - - self.state = 802 - self._errHandler.sync(self) - _la = self._input.LA(1) - if ((((_la - 38)) & ~0x3f) == 0 and ((1 << (_la - 38)) & ((1 << (CParser.T__37 - 38)) | (1 << (CParser.T__41 - 38)) | (1 << (CParser.T__43 - 38)) | (1 << (CParser.T__44 - 38)) | (1 << (CParser.T__47 - 38)) | (1 << (CParser.T__48 - 38)) | (1 << (CParser.T__49 - 38)) | (1 << (CParser.T__52 - 38)) | (1 << (CParser.T__53 - 38)) | (1 << (CParser.T__54 - 38)) | (1 << (CParser.IDENTIFIER - 38)) | (1 << (CParser.CHARACTER_LITERAL - 38)) | (1 << (CParser.STRING_LITERAL - 38)) | (1 << (CParser.HEX_LITERAL - 38)) | (1 << (CParser.DECIMAL_LITERAL - 38)) | (1 << (CParser.OCTAL_LITERAL - 38)) | (1 << (CParser.FLOATING_POINT_LITERAL - 38)))) != 0): - self.state = 801 - self.expression() - - - self.state = 804 - self.match(CParser.T__38) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Labeled_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR start synpred90 + def synpred90_fragment(self, ): + # C.g:341:4: ( specifier_qualifier_list ( abstract_declarator )? ) + # C.g:341:4: specifier_qualifier_list ( abstract_declarator )? + self.following.append(self.FOLLOW_specifier_qualifier_list_in_synpred901046) + self.specifier_qualifier_list() + self.following.pop() + if self.failed: + return + # C.g:341:29: ( abstract_declarator )? + alt122 = 2 + LA122_0 = self.input.LA(1) - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) + if (LA122_0 == 62 or LA122_0 == 64 or LA122_0 == 66) : + alt122 = 1 + if alt122 == 1: + # C.g:0:0: abstract_declarator + self.following.append(self.FOLLOW_abstract_declarator_in_synpred901048) + self.abstract_declarator() + self.following.pop() + if self.failed: + return - def statement(self): - return self.getTypedRuleContext(CParser.StatementContext,0) - def constant_expression(self): - return self.getTypedRuleContext(CParser.Constant_expressionContext,0) - def getRuleIndex(self): - return CParser.RULE_labeled_statement + # $ANTLR end synpred90 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLabeled_statement" ): - listener.enterLabeled_statement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLabeled_statement" ): - listener.exitLabeled_statement(self) + # $ANTLR start synpred91 + def synpred91_fragment(self, ): + # C.g:346:12: ( direct_abstract_declarator ) + # C.g:346:12: direct_abstract_declarator + self.following.append(self.FOLLOW_direct_abstract_declarator_in_synpred911067) + self.direct_abstract_declarator() + self.following.pop() + if self.failed: + return + # $ANTLR end synpred91 - def labeled_statement(self): - localctx = CParser.Labeled_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 128, self.RULE_labeled_statement) - try: - self.state = 817 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.IDENTIFIER]: - self.enterOuterAlt(localctx, 1) - self.state = 806 - self.match(CParser.IDENTIFIER) - self.state = 807 - self.match(CParser.T__22) - self.state = 808 - self.statement() - pass - elif token in [CParser.T__81]: - self.enterOuterAlt(localctx, 2) - self.state = 809 - self.match(CParser.T__81) - self.state = 810 - self.constant_expression() - self.state = 811 - self.match(CParser.T__22) - self.state = 812 - self.statement() - pass - elif token in [CParser.T__82]: - self.enterOuterAlt(localctx, 3) - self.state = 814 - self.match(CParser.T__82) - self.state = 815 - self.match(CParser.T__22) - self.state = 816 - self.statement() - pass - else: - raise NoViableAltException(self) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR start synpred93 + def synpred93_fragment(self, ): + # C.g:351:6: ( '(' abstract_declarator ')' ) + # C.g:351:6: '(' abstract_declarator ')' + self.match(self.input, 62, self.FOLLOW_62_in_synpred931086) + if self.failed: + return + self.following.append(self.FOLLOW_abstract_declarator_in_synpred931088) + self.abstract_declarator() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_synpred931090) + if self.failed: + return - class Compound_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR end synpred93 - def declaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.DeclarationContext) - else: - return self.getTypedRuleContext(CParser.DeclarationContext,i) - def statement_list(self): - return self.getTypedRuleContext(CParser.Statement_listContext,0) + # $ANTLR start synpred94 + def synpred94_fragment(self, ): + # C.g:351:65: ( abstract_declarator_suffix ) + # C.g:351:65: abstract_declarator_suffix + self.following.append(self.FOLLOW_abstract_declarator_suffix_in_synpred941098) + self.abstract_declarator_suffix() + self.following.pop() + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_compound_statement + # $ANTLR end synpred94 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCompound_statement" ): - listener.enterCompound_statement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCompound_statement" ): - listener.exitCompound_statement(self) + # $ANTLR start synpred109 + def synpred109_fragment(self, ): + # C.g:386:4: ( '(' type_name ')' cast_expression ) + # C.g:386:4: '(' type_name ')' cast_expression + self.match(self.input, 62, self.FOLLOW_62_in_synpred1091282) + if self.failed: + return + self.following.append(self.FOLLOW_type_name_in_synpred1091284) + self.type_name() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_synpred1091286) + if self.failed: + return + self.following.append(self.FOLLOW_cast_expression_in_synpred1091288) + self.cast_expression() + self.following.pop() + if self.failed: + return + # $ANTLR end synpred109 - def compound_statement(self): - localctx = CParser.Compound_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 130, self.RULE_compound_statement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 819 - self.match(CParser.T__0) - self.state = 823 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,101,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 820 - self.declaration() - self.state = 825 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,101,self._ctx) - - self.state = 827 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__0) | (1 << CParser.T__1) | (1 << CParser.T__2) | (1 << CParser.T__5) | (1 << CParser.T__6) | (1 << CParser.T__7) | (1 << CParser.T__8) | (1 << CParser.T__9) | (1 << CParser.T__10) | (1 << CParser.T__11) | (1 << CParser.T__12) | (1 << CParser.T__13) | (1 << CParser.T__14) | (1 << CParser.T__15) | (1 << CParser.T__16) | (1 << CParser.T__17) | (1 << CParser.T__18) | (1 << CParser.T__20) | (1 << CParser.T__21) | (1 << CParser.T__23) | (1 << CParser.T__24) | (1 << CParser.T__25) | (1 << CParser.T__26) | (1 << CParser.T__27) | (1 << CParser.T__28) | (1 << CParser.T__29) | (1 << CParser.T__30) | (1 << CParser.T__31) | (1 << CParser.T__32) | (1 << CParser.T__33) | (1 << CParser.T__34) | (1 << CParser.T__35) | (1 << CParser.T__36) | (1 << CParser.T__37) | (1 << CParser.T__41) | (1 << CParser.T__43) | (1 << CParser.T__44) | (1 << CParser.T__47) | (1 << CParser.T__48) | (1 << CParser.T__49) | (1 << CParser.T__52) | (1 << CParser.T__53) | (1 << CParser.T__54))) != 0) or ((((_la - 79)) & ~0x3f) == 0 and ((1 << (_la - 79)) & ((1 << (CParser.T__78 - 79)) | (1 << (CParser.T__79 - 79)) | (1 << (CParser.T__80 - 79)) | (1 << (CParser.T__81 - 79)) | (1 << (CParser.T__82 - 79)) | (1 << (CParser.T__83 - 79)) | (1 << (CParser.T__85 - 79)) | (1 << (CParser.T__86 - 79)) | (1 << (CParser.T__87 - 79)) | (1 << (CParser.T__88 - 79)) | (1 << (CParser.T__89 - 79)) | (1 << (CParser.T__90 - 79)) | (1 << (CParser.T__91 - 79)) | (1 << (CParser.IDENTIFIER - 79)) | (1 << (CParser.CHARACTER_LITERAL - 79)) | (1 << (CParser.STRING_LITERAL - 79)) | (1 << (CParser.HEX_LITERAL - 79)) | (1 << (CParser.DECIMAL_LITERAL - 79)) | (1 << (CParser.OCTAL_LITERAL - 79)) | (1 << (CParser.FLOATING_POINT_LITERAL - 79)))) != 0): - self.state = 826 - self.statement_list() - - - self.state = 829 - self.match(CParser.T__19) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Statement_listContext(ParserRuleContext): + # $ANTLR start synpred114 + def synpred114_fragment(self, ): + # C.g:395:4: ( 'sizeof' unary_expression ) + # C.g:395:4: 'sizeof' unary_expression + self.match(self.input, 74, self.FOLLOW_74_in_synpred1141330) + if self.failed: + return + self.following.append(self.FOLLOW_unary_expression_in_synpred1141332) + self.unary_expression() + self.following.pop() + if self.failed: + return - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def statement(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.StatementContext) - else: - return self.getTypedRuleContext(CParser.StatementContext,i) + # $ANTLR end synpred114 - def getRuleIndex(self): - return CParser.RULE_statement_list - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatement_list" ): - listener.enterStatement_list(self) + # $ANTLR start synpred117 + def synpred117_fragment(self, ): + # C.g:409:13: ( '(' argument_expression_list ')' ) + # C.g:409:13: '(' argument_expression_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_synpred1171420) + if self.failed: + return + self.following.append(self.FOLLOW_argument_expression_list_in_synpred1171424) + self.argument_expression_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_synpred1171428) + if self.failed: + return - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatement_list" ): - listener.exitStatement_list(self) + # $ANTLR end synpred117 - def statement_list(self): + # $ANTLR start synpred118 + def synpred118_fragment(self, ): + # C.g:410:13: ( '(' macro_parameter_list ')' ) + # C.g:410:13: '(' macro_parameter_list ')' + self.match(self.input, 62, self.FOLLOW_62_in_synpred1181444) + if self.failed: + return + self.following.append(self.FOLLOW_macro_parameter_list_in_synpred1181446) + self.macro_parameter_list() + self.following.pop() + if self.failed: + return + self.match(self.input, 63, self.FOLLOW_63_in_synpred1181448) + if self.failed: + return - localctx = CParser.Statement_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 132, self.RULE_statement_list) - try: - self.enterOuterAlt(localctx, 1) - self.state = 832 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 831 - self.statement() - else: - raise NoViableAltException(self) - self.state = 834 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,103,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR end synpred118 - class Expression_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + # $ANTLR start synpred120 + def synpred120_fragment(self, ): + # C.g:412:13: ( '*' IDENTIFIER ) + # C.g:412:13: '*' IDENTIFIER + self.match(self.input, 66, self.FOLLOW_66_in_synpred1201482) + if self.failed: + return + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_synpred1201486) + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_expression_statement + # $ANTLR end synpred120 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExpression_statement" ): - listener.enterExpression_statement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExpression_statement" ): - listener.exitExpression_statement(self) + # $ANTLR start synpred137 + def synpred137_fragment(self, ): + # C.g:443:20: ( STRING_LITERAL ) + # C.g:443:20: STRING_LITERAL + self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_synpred1371683) + if self.failed: + return + # $ANTLR end synpred137 - def expression_statement(self): - localctx = CParser.Expression_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 134, self.RULE_expression_statement) - try: - self.state = 840 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__1]: - self.enterOuterAlt(localctx, 1) - self.state = 836 - self.match(CParser.T__1) - pass - elif token in [CParser.T__37, CParser.T__41, CParser.T__43, CParser.T__44, CParser.T__47, CParser.T__48, CParser.T__49, CParser.T__52, CParser.T__53, CParser.T__54, CParser.IDENTIFIER, CParser.CHARACTER_LITERAL, CParser.STRING_LITERAL, CParser.HEX_LITERAL, CParser.DECIMAL_LITERAL, CParser.OCTAL_LITERAL, CParser.FLOATING_POINT_LITERAL]: - self.enterOuterAlt(localctx, 2) - self.state = 837 - self.expression() - self.state = 838 - self.match(CParser.T__1) - pass - else: - raise NoViableAltException(self) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR start synpred138 + def synpred138_fragment(self, ): + # C.g:443:8: ( ( IDENTIFIER )* ( STRING_LITERAL )+ ) + # C.g:443:8: ( IDENTIFIER )* ( STRING_LITERAL )+ + # C.g:443:8: ( IDENTIFIER )* + while True: #loop125 + alt125 = 2 + LA125_0 = self.input.LA(1) - class Selection_statementContext(ParserRuleContext): + if (LA125_0 == IDENTIFIER) : + alt125 = 1 - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.e = None # ExpressionContext - def statement(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(CParser.StatementContext) - else: - return self.getTypedRuleContext(CParser.StatementContext,i) + if alt125 == 1: + # C.g:0:0: IDENTIFIER + self.match(self.input, IDENTIFIER, self.FOLLOW_IDENTIFIER_in_synpred1381680) + if self.failed: + return - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + else: + break #loop125 - def getRuleIndex(self): - return CParser.RULE_selection_statement + # C.g:443:20: ( STRING_LITERAL )+ + cnt126 = 0 + while True: #loop126 + alt126 = 2 + LA126_0 = self.input.LA(1) - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSelection_statement" ): - listener.enterSelection_statement(self) + if (LA126_0 == STRING_LITERAL) : + alt126 = 1 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSelection_statement" ): - listener.exitSelection_statement(self) + if alt126 == 1: + # C.g:0:0: STRING_LITERAL + self.match(self.input, STRING_LITERAL, self.FOLLOW_STRING_LITERAL_in_synpred1381683) + if self.failed: + return + else: + if cnt126 >= 1: + break #loop126 - def selection_statement(self): + if self.backtracking > 0: + self.failed = True + return - localctx = CParser.Selection_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 136, self.RULE_selection_statement) - try: - self.state = 858 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__83]: - self.enterOuterAlt(localctx, 1) - self.state = 842 - self.match(CParser.T__83) - self.state = 843 - self.match(CParser.T__37) - self.state = 844 - localctx.e = self.expression() - self.state = 845 - self.match(CParser.T__38) - self.StorePredicateExpression((None if localctx.e is None else localctx.e.start).line, (None if localctx.e is None else localctx.e.start).column, (None if localctx.e is None else localctx.e.stop).line, (None if localctx.e is None else localctx.e.stop).column, (None if localctx.e is None else self._input.getText((localctx.e.start,localctx.e.stop)))) - self.state = 847 - self.statement() - self.state = 850 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,105,self._ctx) - if la_ == 1: - self.state = 848 - self.match(CParser.T__84) - self.state = 849 - self.statement() + eee = EarlyExitException(126, self.input) + raise eee + cnt126 += 1 - pass - elif token in [CParser.T__85]: - self.enterOuterAlt(localctx, 2) - self.state = 852 - self.match(CParser.T__85) - self.state = 853 - self.match(CParser.T__37) - self.state = 854 - self.expression() - self.state = 855 - self.match(CParser.T__38) - self.state = 856 - self.statement() - pass - else: - raise NoViableAltException(self) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class Iteration_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - self.e = None # ExpressionContext + # $ANTLR end synpred138 - def statement(self): - return self.getTypedRuleContext(CParser.StatementContext,0) - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + # $ANTLR start synpred142 + def synpred142_fragment(self, ): + # C.g:458:4: ( lvalue assignment_operator assignment_expression ) + # C.g:458:4: lvalue assignment_operator assignment_expression + self.following.append(self.FOLLOW_lvalue_in_synpred1421744) + self.lvalue() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_assignment_operator_in_synpred1421746) + self.assignment_operator() + self.following.pop() + if self.failed: + return + self.following.append(self.FOLLOW_assignment_expression_in_synpred1421748) + self.assignment_expression() + self.following.pop() + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_iteration_statement + # $ANTLR end synpred142 - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIteration_statement" ): - listener.enterIteration_statement(self) - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIteration_statement" ): - listener.exitIteration_statement(self) + # $ANTLR start synpred169 + def synpred169_fragment(self, ): + # C.g:520:4: ( expression_statement ) + # C.g:520:4: expression_statement + self.following.append(self.FOLLOW_expression_statement_in_synpred1692035) + self.expression_statement() + self.following.pop() + if self.failed: + return + # $ANTLR end synpred169 - def iteration_statement(self): - localctx = CParser.Iteration_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 138, self.RULE_iteration_statement) - try: - self.state = 876 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CParser.T__86]: - self.enterOuterAlt(localctx, 1) - self.state = 860 - self.match(CParser.T__86) - self.state = 861 - self.match(CParser.T__37) - self.state = 862 - localctx.e = self.expression() - self.state = 863 - self.match(CParser.T__38) - self.state = 864 - self.statement() - self.StorePredicateExpression((None if localctx.e is None else localctx.e.start).line, (None if localctx.e is None else localctx.e.start).column, (None if localctx.e is None else localctx.e.stop).line, (None if localctx.e is None else localctx.e.stop).column, (None if localctx.e is None else self._input.getText((localctx.e.start,localctx.e.stop)))) - pass - elif token in [CParser.T__87]: - self.enterOuterAlt(localctx, 2) - self.state = 867 - self.match(CParser.T__87) - self.state = 868 - self.statement() - self.state = 869 - self.match(CParser.T__86) - self.state = 870 - self.match(CParser.T__37) - self.state = 871 - localctx.e = self.expression() - self.state = 872 - self.match(CParser.T__38) - self.state = 873 - self.match(CParser.T__1) - self.StorePredicateExpression((None if localctx.e is None else localctx.e.start).line, (None if localctx.e is None else localctx.e.start).column, (None if localctx.e is None else localctx.e.stop).line, (None if localctx.e is None else localctx.e.stop).column, (None if localctx.e is None else self._input.getText((localctx.e.start,localctx.e.stop)))) - pass - else: - raise NoViableAltException(self) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR start synpred173 + def synpred173_fragment(self, ): + # C.g:524:4: ( macro_statement ) + # C.g:524:4: macro_statement + self.following.append(self.FOLLOW_macro_statement_in_synpred1732055) + self.macro_statement() + self.following.pop() + if self.failed: + return - class Jump_statementContext(ParserRuleContext): - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser + # $ANTLR end synpred173 - def IDENTIFIER(self): - return self.getToken(CParser.IDENTIFIER, 0) - def expression(self): - return self.getTypedRuleContext(CParser.ExpressionContext,0) + # $ANTLR start synpred174 + def synpred174_fragment(self, ): + # C.g:525:4: ( asm2_statement ) + # C.g:525:4: asm2_statement + self.following.append(self.FOLLOW_asm2_statement_in_synpred1742060) + self.asm2_statement() + self.following.pop() + if self.failed: + return - def getRuleIndex(self): - return CParser.RULE_jump_statement - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterJump_statement" ): - listener.enterJump_statement(self) + # $ANTLR end synpred174 - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitJump_statement" ): - listener.exitJump_statement(self) + # $ANTLR start synpred181 + def synpred181_fragment(self, ): + # C.g:544:19: ( declaration ) + # C.g:544:19: declaration + self.following.append(self.FOLLOW_declaration_in_synpred1812166) + self.declaration() + self.following.pop() + if self.failed: + return - def jump_statement(self): + # $ANTLR end synpred181 - localctx = CParser.Jump_statementContext(self, self._ctx, self.state) - self.enterRule(localctx, 140, self.RULE_jump_statement) - try: - self.state = 891 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,108,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 878 - self.match(CParser.T__88) - self.state = 879 - self.match(CParser.IDENTIFIER) - self.state = 880 - self.match(CParser.T__1) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 881 - self.match(CParser.T__89) - self.state = 882 - self.match(CParser.T__1) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 883 - self.match(CParser.T__90) - self.state = 884 - self.match(CParser.T__1) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 885 - self.match(CParser.T__91) - self.state = 886 - self.match(CParser.T__1) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 887 - self.match(CParser.T__91) - self.state = 888 - self.expression() - self.state = 889 - self.match(CParser.T__1) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx + # $ANTLR start synpred182 + def synpred182_fragment(self, ): + # C.g:544:33: ( statement_list ) + # C.g:544:33: statement_list + self.following.append(self.FOLLOW_statement_list_in_synpred1822170) + self.statement_list() + self.following.pop() + if self.failed: + return + # $ANTLR end synpred182 + + + + # $ANTLR start synpred186 + def synpred186_fragment(self, ): + # C.g:554:8: ( declaration ) + # C.g:554:8: declaration + self.following.append(self.FOLLOW_declaration_in_synpred1862225) + self.declaration() + self.following.pop() + if self.failed: + return + + + # $ANTLR end synpred186 + + + + # $ANTLR start synpred188 + def synpred188_fragment(self, ): + # C.g:558:4: ( statement ) + # C.g:558:4: statement + self.following.append(self.FOLLOW_statement_in_synpred1882242) + self.statement() + self.following.pop() + if self.failed: + return + + + # $ANTLR end synpred188 + + + + def synpred69(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred69_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred81(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred81_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred82(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred82_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred66(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred66_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred83(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred83_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred84(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred84_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred67(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred67_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred86(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred86_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred120(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred120_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred40(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred40_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred142(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred142_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred182(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred182_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred109(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred109_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred181(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred181_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred186(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred186_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred188(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred188_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred169(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred169_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred117(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred117_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred70(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred70_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred118(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred118_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred34(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred34_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred33(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred33_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred94(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred94_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred39(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred39_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred74(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred74_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred114(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred114_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred93(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred93_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred75(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred75_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred137(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred137_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred90(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred90_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred138(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred138_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred91(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred91_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred73(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred73_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred5(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred5_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred78(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred78_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred7(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred7_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred76(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred76_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred77(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred77_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred2(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred2_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred4(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred4_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred174(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred174_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred173(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred173_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred14(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred14_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred15(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred15_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + def synpred10(self): + self.backtracking += 1 + start = self.input.mark() + self.synpred10_fragment() + success = not self.failed + self.input.rewind(start) + self.backtracking -= 1 + self.failed = False + return success + + + + + + FOLLOW_external_declaration_in_translation_unit74 = frozenset([1, 4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66]) + FOLLOW_function_definition_in_external_declaration113 = frozenset([1]) + FOLLOW_declaration_in_external_declaration118 = frozenset([1]) + FOLLOW_macro_statement_in_external_declaration123 = frozenset([1, 25]) + FOLLOW_25_in_external_declaration126 = frozenset([1]) + FOLLOW_declaration_specifiers_in_function_definition157 = frozenset([4, 58, 59, 60, 62, 66]) + FOLLOW_declarator_in_function_definition160 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_declaration_in_function_definition166 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_compound_statement_in_function_definition171 = frozenset([1]) + FOLLOW_compound_statement_in_function_definition180 = frozenset([1]) + FOLLOW_26_in_declaration203 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66]) + FOLLOW_declaration_specifiers_in_declaration207 = frozenset([4, 58, 59, 60, 62, 66]) + FOLLOW_init_declarator_list_in_declaration216 = frozenset([25]) + FOLLOW_25_in_declaration220 = frozenset([1]) + FOLLOW_declaration_specifiers_in_declaration234 = frozenset([4, 25, 58, 59, 60, 62, 66]) + FOLLOW_init_declarator_list_in_declaration238 = frozenset([25]) + FOLLOW_25_in_declaration243 = frozenset([1]) + FOLLOW_storage_class_specifier_in_declaration_specifiers264 = frozenset([1, 4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_specifier_in_declaration_specifiers272 = frozenset([1, 4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_qualifier_in_declaration_specifiers286 = frozenset([1, 4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_init_declarator_in_init_declarator_list308 = frozenset([1, 27]) + FOLLOW_27_in_init_declarator_list311 = frozenset([4, 58, 59, 60, 62, 66]) + FOLLOW_init_declarator_in_init_declarator_list313 = frozenset([1, 27]) + FOLLOW_declarator_in_init_declarator326 = frozenset([1, 28]) + FOLLOW_28_in_init_declarator329 = frozenset([4, 5, 6, 7, 8, 9, 10, 43, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_initializer_in_init_declarator331 = frozenset([1]) + FOLLOW_set_in_storage_class_specifier0 = frozenset([1]) + FOLLOW_34_in_type_specifier376 = frozenset([1]) + FOLLOW_35_in_type_specifier381 = frozenset([1]) + FOLLOW_36_in_type_specifier386 = frozenset([1]) + FOLLOW_37_in_type_specifier391 = frozenset([1]) + FOLLOW_38_in_type_specifier396 = frozenset([1]) + FOLLOW_39_in_type_specifier401 = frozenset([1]) + FOLLOW_40_in_type_specifier406 = frozenset([1]) + FOLLOW_41_in_type_specifier411 = frozenset([1]) + FOLLOW_42_in_type_specifier416 = frozenset([1]) + FOLLOW_struct_or_union_specifier_in_type_specifier423 = frozenset([1]) + FOLLOW_enum_specifier_in_type_specifier433 = frozenset([1]) + FOLLOW_type_id_in_type_specifier451 = frozenset([1]) + FOLLOW_IDENTIFIER_in_type_id467 = frozenset([1]) + FOLLOW_struct_or_union_in_struct_or_union_specifier494 = frozenset([4, 43]) + FOLLOW_IDENTIFIER_in_struct_or_union_specifier496 = frozenset([43]) + FOLLOW_43_in_struct_or_union_specifier499 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_struct_declaration_list_in_struct_or_union_specifier501 = frozenset([44]) + FOLLOW_44_in_struct_or_union_specifier503 = frozenset([1]) + FOLLOW_struct_or_union_in_struct_or_union_specifier508 = frozenset([4]) + FOLLOW_IDENTIFIER_in_struct_or_union_specifier510 = frozenset([1]) + FOLLOW_set_in_struct_or_union0 = frozenset([1]) + FOLLOW_struct_declaration_in_struct_declaration_list537 = frozenset([1, 4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_specifier_qualifier_list_in_struct_declaration549 = frozenset([4, 47, 58, 59, 60, 62, 66]) + FOLLOW_struct_declarator_list_in_struct_declaration551 = frozenset([25]) + FOLLOW_25_in_struct_declaration553 = frozenset([1]) + FOLLOW_type_qualifier_in_specifier_qualifier_list566 = frozenset([1, 4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_specifier_in_specifier_qualifier_list570 = frozenset([1, 4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_struct_declarator_in_struct_declarator_list584 = frozenset([1, 27]) + FOLLOW_27_in_struct_declarator_list587 = frozenset([4, 47, 58, 59, 60, 62, 66]) + FOLLOW_struct_declarator_in_struct_declarator_list589 = frozenset([1, 27]) + FOLLOW_declarator_in_struct_declarator602 = frozenset([1, 47]) + FOLLOW_47_in_struct_declarator605 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_constant_expression_in_struct_declarator607 = frozenset([1]) + FOLLOW_47_in_struct_declarator614 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_constant_expression_in_struct_declarator616 = frozenset([1]) + FOLLOW_48_in_enum_specifier634 = frozenset([43]) + FOLLOW_43_in_enum_specifier636 = frozenset([4]) + FOLLOW_enumerator_list_in_enum_specifier638 = frozenset([27, 44]) + FOLLOW_27_in_enum_specifier640 = frozenset([44]) + FOLLOW_44_in_enum_specifier643 = frozenset([1]) + FOLLOW_48_in_enum_specifier648 = frozenset([4]) + FOLLOW_IDENTIFIER_in_enum_specifier650 = frozenset([43]) + FOLLOW_43_in_enum_specifier652 = frozenset([4]) + FOLLOW_enumerator_list_in_enum_specifier654 = frozenset([27, 44]) + FOLLOW_27_in_enum_specifier656 = frozenset([44]) + FOLLOW_44_in_enum_specifier659 = frozenset([1]) + FOLLOW_48_in_enum_specifier664 = frozenset([4]) + FOLLOW_IDENTIFIER_in_enum_specifier666 = frozenset([1]) + FOLLOW_enumerator_in_enumerator_list677 = frozenset([1, 27]) + FOLLOW_27_in_enumerator_list680 = frozenset([4]) + FOLLOW_enumerator_in_enumerator_list682 = frozenset([1, 27]) + FOLLOW_IDENTIFIER_in_enumerator695 = frozenset([1, 28]) + FOLLOW_28_in_enumerator698 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_constant_expression_in_enumerator700 = frozenset([1]) + FOLLOW_set_in_type_qualifier0 = frozenset([1]) + FOLLOW_pointer_in_declarator784 = frozenset([4, 58, 59, 60, 62]) + FOLLOW_58_in_declarator788 = frozenset([4, 59, 60, 62]) + FOLLOW_59_in_declarator793 = frozenset([4, 60, 62]) + FOLLOW_60_in_declarator798 = frozenset([4, 62]) + FOLLOW_direct_declarator_in_declarator802 = frozenset([1]) + FOLLOW_pointer_in_declarator808 = frozenset([1]) + FOLLOW_IDENTIFIER_in_direct_declarator819 = frozenset([1, 62, 64]) + FOLLOW_declarator_suffix_in_direct_declarator821 = frozenset([1, 62, 64]) + FOLLOW_62_in_direct_declarator827 = frozenset([4, 58, 59, 60, 62, 66]) + FOLLOW_58_in_direct_declarator830 = frozenset([4, 58, 59, 60, 62, 66]) + FOLLOW_declarator_in_direct_declarator834 = frozenset([63]) + FOLLOW_63_in_direct_declarator836 = frozenset([62, 64]) + FOLLOW_declarator_suffix_in_direct_declarator838 = frozenset([1, 62, 64]) + FOLLOW_64_in_declarator_suffix852 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_constant_expression_in_declarator_suffix854 = frozenset([65]) + FOLLOW_65_in_declarator_suffix856 = frozenset([1]) + FOLLOW_64_in_declarator_suffix866 = frozenset([65]) + FOLLOW_65_in_declarator_suffix868 = frozenset([1]) + FOLLOW_62_in_declarator_suffix878 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_parameter_type_list_in_declarator_suffix880 = frozenset([63]) + FOLLOW_63_in_declarator_suffix882 = frozenset([1]) + FOLLOW_62_in_declarator_suffix892 = frozenset([4]) + FOLLOW_identifier_list_in_declarator_suffix894 = frozenset([63]) + FOLLOW_63_in_declarator_suffix896 = frozenset([1]) + FOLLOW_62_in_declarator_suffix906 = frozenset([63]) + FOLLOW_63_in_declarator_suffix908 = frozenset([1]) + FOLLOW_66_in_pointer919 = frozenset([49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_qualifier_in_pointer921 = frozenset([1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_pointer_in_pointer924 = frozenset([1]) + FOLLOW_66_in_pointer930 = frozenset([66]) + FOLLOW_pointer_in_pointer932 = frozenset([1]) + FOLLOW_66_in_pointer937 = frozenset([1]) + FOLLOW_parameter_list_in_parameter_type_list948 = frozenset([1, 27]) + FOLLOW_27_in_parameter_type_list951 = frozenset([53, 67]) + FOLLOW_53_in_parameter_type_list954 = frozenset([67]) + FOLLOW_67_in_parameter_type_list958 = frozenset([1]) + FOLLOW_parameter_declaration_in_parameter_list971 = frozenset([1, 27]) + FOLLOW_27_in_parameter_list974 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_53_in_parameter_list977 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_parameter_declaration_in_parameter_list981 = frozenset([1, 27]) + FOLLOW_declaration_specifiers_in_parameter_declaration994 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66]) + FOLLOW_declarator_in_parameter_declaration997 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66]) + FOLLOW_abstract_declarator_in_parameter_declaration999 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66]) + FOLLOW_53_in_parameter_declaration1004 = frozenset([1]) + FOLLOW_pointer_in_parameter_declaration1013 = frozenset([4, 66]) + FOLLOW_IDENTIFIER_in_parameter_declaration1016 = frozenset([1]) + FOLLOW_IDENTIFIER_in_identifier_list1027 = frozenset([1, 27]) + FOLLOW_27_in_identifier_list1031 = frozenset([4]) + FOLLOW_IDENTIFIER_in_identifier_list1033 = frozenset([1, 27]) + FOLLOW_specifier_qualifier_list_in_type_name1046 = frozenset([1, 62, 64, 66]) + FOLLOW_abstract_declarator_in_type_name1048 = frozenset([1]) + FOLLOW_type_id_in_type_name1054 = frozenset([1]) + FOLLOW_pointer_in_abstract_declarator1065 = frozenset([1, 62, 64]) + FOLLOW_direct_abstract_declarator_in_abstract_declarator1067 = frozenset([1]) + FOLLOW_direct_abstract_declarator_in_abstract_declarator1073 = frozenset([1]) + FOLLOW_62_in_direct_abstract_declarator1086 = frozenset([62, 64, 66]) + FOLLOW_abstract_declarator_in_direct_abstract_declarator1088 = frozenset([63]) + FOLLOW_63_in_direct_abstract_declarator1090 = frozenset([1, 62, 64]) + FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1094 = frozenset([1, 62, 64]) + FOLLOW_abstract_declarator_suffix_in_direct_abstract_declarator1098 = frozenset([1, 62, 64]) + FOLLOW_64_in_abstract_declarator_suffix1110 = frozenset([65]) + FOLLOW_65_in_abstract_declarator_suffix1112 = frozenset([1]) + FOLLOW_64_in_abstract_declarator_suffix1117 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_constant_expression_in_abstract_declarator_suffix1119 = frozenset([65]) + FOLLOW_65_in_abstract_declarator_suffix1121 = frozenset([1]) + FOLLOW_62_in_abstract_declarator_suffix1126 = frozenset([63]) + FOLLOW_63_in_abstract_declarator_suffix1128 = frozenset([1]) + FOLLOW_62_in_abstract_declarator_suffix1133 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_parameter_type_list_in_abstract_declarator_suffix1135 = frozenset([63]) + FOLLOW_63_in_abstract_declarator_suffix1137 = frozenset([1]) + FOLLOW_assignment_expression_in_initializer1150 = frozenset([1]) + FOLLOW_43_in_initializer1155 = frozenset([4, 5, 6, 7, 8, 9, 10, 43, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_initializer_list_in_initializer1157 = frozenset([27, 44]) + FOLLOW_27_in_initializer1159 = frozenset([44]) + FOLLOW_44_in_initializer1162 = frozenset([1]) + FOLLOW_initializer_in_initializer_list1173 = frozenset([1, 27]) + FOLLOW_27_in_initializer_list1176 = frozenset([4, 5, 6, 7, 8, 9, 10, 43, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_initializer_in_initializer_list1178 = frozenset([1, 27]) + FOLLOW_assignment_expression_in_argument_expression_list1196 = frozenset([1, 27, 53]) + FOLLOW_53_in_argument_expression_list1199 = frozenset([1, 27]) + FOLLOW_27_in_argument_expression_list1204 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_assignment_expression_in_argument_expression_list1206 = frozenset([1, 27, 53]) + FOLLOW_53_in_argument_expression_list1209 = frozenset([1, 27]) + FOLLOW_multiplicative_expression_in_additive_expression1225 = frozenset([1, 68, 69]) + FOLLOW_68_in_additive_expression1229 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_multiplicative_expression_in_additive_expression1231 = frozenset([1, 68, 69]) + FOLLOW_69_in_additive_expression1235 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_multiplicative_expression_in_additive_expression1237 = frozenset([1, 68, 69]) + FOLLOW_cast_expression_in_multiplicative_expression1251 = frozenset([1, 66, 70, 71]) + FOLLOW_66_in_multiplicative_expression1255 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_cast_expression_in_multiplicative_expression1257 = frozenset([1, 66, 70, 71]) + FOLLOW_70_in_multiplicative_expression1261 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_cast_expression_in_multiplicative_expression1263 = frozenset([1, 66, 70, 71]) + FOLLOW_71_in_multiplicative_expression1267 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_cast_expression_in_multiplicative_expression1269 = frozenset([1, 66, 70, 71]) + FOLLOW_62_in_cast_expression1282 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_name_in_cast_expression1284 = frozenset([63]) + FOLLOW_63_in_cast_expression1286 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_cast_expression_in_cast_expression1288 = frozenset([1]) + FOLLOW_unary_expression_in_cast_expression1293 = frozenset([1]) + FOLLOW_postfix_expression_in_unary_expression1304 = frozenset([1]) + FOLLOW_72_in_unary_expression1309 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_unary_expression_in_unary_expression1311 = frozenset([1]) + FOLLOW_73_in_unary_expression1316 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_unary_expression_in_unary_expression1318 = frozenset([1]) + FOLLOW_unary_operator_in_unary_expression1323 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_cast_expression_in_unary_expression1325 = frozenset([1]) + FOLLOW_74_in_unary_expression1330 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_unary_expression_in_unary_expression1332 = frozenset([1]) + FOLLOW_74_in_unary_expression1337 = frozenset([62]) + FOLLOW_62_in_unary_expression1339 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_name_in_unary_expression1341 = frozenset([63]) + FOLLOW_63_in_unary_expression1343 = frozenset([1]) + FOLLOW_primary_expression_in_postfix_expression1367 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_64_in_postfix_expression1383 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_postfix_expression1385 = frozenset([65]) + FOLLOW_65_in_postfix_expression1387 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_62_in_postfix_expression1401 = frozenset([63]) + FOLLOW_63_in_postfix_expression1405 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_62_in_postfix_expression1420 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_argument_expression_list_in_postfix_expression1424 = frozenset([63]) + FOLLOW_63_in_postfix_expression1428 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_62_in_postfix_expression1444 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_macro_parameter_list_in_postfix_expression1446 = frozenset([63]) + FOLLOW_63_in_postfix_expression1448 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_75_in_postfix_expression1462 = frozenset([4]) + FOLLOW_IDENTIFIER_in_postfix_expression1466 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_66_in_postfix_expression1482 = frozenset([4]) + FOLLOW_IDENTIFIER_in_postfix_expression1486 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_76_in_postfix_expression1502 = frozenset([4]) + FOLLOW_IDENTIFIER_in_postfix_expression1506 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_72_in_postfix_expression1522 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_73_in_postfix_expression1536 = frozenset([1, 62, 64, 66, 72, 73, 75, 76]) + FOLLOW_parameter_declaration_in_macro_parameter_list1559 = frozenset([1, 27]) + FOLLOW_27_in_macro_parameter_list1562 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_parameter_declaration_in_macro_parameter_list1564 = frozenset([1, 27]) + FOLLOW_set_in_unary_operator0 = frozenset([1]) + FOLLOW_IDENTIFIER_in_primary_expression1613 = frozenset([1]) + FOLLOW_constant_in_primary_expression1618 = frozenset([1]) + FOLLOW_62_in_primary_expression1623 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_primary_expression1625 = frozenset([63]) + FOLLOW_63_in_primary_expression1627 = frozenset([1]) + FOLLOW_HEX_LITERAL_in_constant1643 = frozenset([1]) + FOLLOW_OCTAL_LITERAL_in_constant1653 = frozenset([1]) + FOLLOW_DECIMAL_LITERAL_in_constant1663 = frozenset([1]) + FOLLOW_CHARACTER_LITERAL_in_constant1671 = frozenset([1]) + FOLLOW_IDENTIFIER_in_constant1680 = frozenset([4, 9]) + FOLLOW_STRING_LITERAL_in_constant1683 = frozenset([1, 4, 9]) + FOLLOW_IDENTIFIER_in_constant1688 = frozenset([1, 4]) + FOLLOW_FLOATING_POINT_LITERAL_in_constant1699 = frozenset([1]) + FOLLOW_assignment_expression_in_expression1715 = frozenset([1, 27]) + FOLLOW_27_in_expression1718 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_assignment_expression_in_expression1720 = frozenset([1, 27]) + FOLLOW_conditional_expression_in_constant_expression1733 = frozenset([1]) + FOLLOW_lvalue_in_assignment_expression1744 = frozenset([28, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89]) + FOLLOW_assignment_operator_in_assignment_expression1746 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_assignment_expression_in_assignment_expression1748 = frozenset([1]) + FOLLOW_conditional_expression_in_assignment_expression1753 = frozenset([1]) + FOLLOW_unary_expression_in_lvalue1765 = frozenset([1]) + FOLLOW_set_in_assignment_operator0 = frozenset([1]) + FOLLOW_logical_or_expression_in_conditional_expression1839 = frozenset([1, 90]) + FOLLOW_90_in_conditional_expression1842 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_conditional_expression1844 = frozenset([47]) + FOLLOW_47_in_conditional_expression1846 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_conditional_expression_in_conditional_expression1848 = frozenset([1]) + FOLLOW_logical_and_expression_in_logical_or_expression1863 = frozenset([1, 91]) + FOLLOW_91_in_logical_or_expression1866 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_logical_and_expression_in_logical_or_expression1868 = frozenset([1, 91]) + FOLLOW_inclusive_or_expression_in_logical_and_expression1881 = frozenset([1, 92]) + FOLLOW_92_in_logical_and_expression1884 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_inclusive_or_expression_in_logical_and_expression1886 = frozenset([1, 92]) + FOLLOW_exclusive_or_expression_in_inclusive_or_expression1899 = frozenset([1, 93]) + FOLLOW_93_in_inclusive_or_expression1902 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_exclusive_or_expression_in_inclusive_or_expression1904 = frozenset([1, 93]) + FOLLOW_and_expression_in_exclusive_or_expression1917 = frozenset([1, 94]) + FOLLOW_94_in_exclusive_or_expression1920 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_and_expression_in_exclusive_or_expression1922 = frozenset([1, 94]) + FOLLOW_equality_expression_in_and_expression1935 = frozenset([1, 77]) + FOLLOW_77_in_and_expression1938 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_equality_expression_in_and_expression1940 = frozenset([1, 77]) + FOLLOW_relational_expression_in_equality_expression1952 = frozenset([1, 95, 96]) + FOLLOW_set_in_equality_expression1955 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_relational_expression_in_equality_expression1961 = frozenset([1, 95, 96]) + FOLLOW_shift_expression_in_relational_expression1975 = frozenset([1, 97, 98, 99, 100]) + FOLLOW_set_in_relational_expression1978 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_shift_expression_in_relational_expression1988 = frozenset([1, 97, 98, 99, 100]) + FOLLOW_additive_expression_in_shift_expression2001 = frozenset([1, 101, 102]) + FOLLOW_set_in_shift_expression2004 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_additive_expression_in_shift_expression2010 = frozenset([1, 101, 102]) + FOLLOW_labeled_statement_in_statement2025 = frozenset([1]) + FOLLOW_compound_statement_in_statement2030 = frozenset([1]) + FOLLOW_expression_statement_in_statement2035 = frozenset([1]) + FOLLOW_selection_statement_in_statement2040 = frozenset([1]) + FOLLOW_iteration_statement_in_statement2045 = frozenset([1]) + FOLLOW_jump_statement_in_statement2050 = frozenset([1]) + FOLLOW_macro_statement_in_statement2055 = frozenset([1]) + FOLLOW_asm2_statement_in_statement2060 = frozenset([1]) + FOLLOW_asm1_statement_in_statement2065 = frozenset([1]) + FOLLOW_asm_statement_in_statement2070 = frozenset([1]) + FOLLOW_declaration_in_statement2075 = frozenset([1]) + FOLLOW_103_in_asm2_statement2086 = frozenset([4]) + FOLLOW_IDENTIFIER_in_asm2_statement2089 = frozenset([62]) + FOLLOW_62_in_asm2_statement2091 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_set_in_asm2_statement2094 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_63_in_asm2_statement2101 = frozenset([25]) + FOLLOW_25_in_asm2_statement2103 = frozenset([1]) + FOLLOW_104_in_asm1_statement2115 = frozenset([43]) + FOLLOW_43_in_asm1_statement2117 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_set_in_asm1_statement2120 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_44_in_asm1_statement2127 = frozenset([1]) + FOLLOW_105_in_asm_statement2138 = frozenset([43]) + FOLLOW_43_in_asm_statement2140 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_set_in_asm_statement2143 = frozenset([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_44_in_asm_statement2150 = frozenset([1]) + FOLLOW_IDENTIFIER_in_macro_statement2162 = frozenset([62]) + FOLLOW_62_in_macro_statement2164 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_declaration_in_macro_statement2166 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_list_in_macro_statement2170 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_macro_statement2173 = frozenset([63]) + FOLLOW_63_in_macro_statement2176 = frozenset([1]) + FOLLOW_IDENTIFIER_in_labeled_statement2188 = frozenset([47]) + FOLLOW_47_in_labeled_statement2190 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_labeled_statement2192 = frozenset([1]) + FOLLOW_106_in_labeled_statement2197 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_constant_expression_in_labeled_statement2199 = frozenset([47]) + FOLLOW_47_in_labeled_statement2201 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_labeled_statement2203 = frozenset([1]) + FOLLOW_107_in_labeled_statement2208 = frozenset([47]) + FOLLOW_47_in_labeled_statement2210 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_labeled_statement2212 = frozenset([1]) + FOLLOW_43_in_compound_statement2223 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_declaration_in_compound_statement2225 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_list_in_compound_statement2228 = frozenset([44]) + FOLLOW_44_in_compound_statement2231 = frozenset([1]) + FOLLOW_statement_in_statement_list2242 = frozenset([1, 4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_25_in_expression_statement2254 = frozenset([1]) + FOLLOW_expression_in_expression_statement2259 = frozenset([25]) + FOLLOW_25_in_expression_statement2261 = frozenset([1]) + FOLLOW_108_in_selection_statement2272 = frozenset([62]) + FOLLOW_62_in_selection_statement2274 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_selection_statement2278 = frozenset([63]) + FOLLOW_63_in_selection_statement2280 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_selection_statement2284 = frozenset([1, 109]) + FOLLOW_109_in_selection_statement2299 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_selection_statement2301 = frozenset([1]) + FOLLOW_110_in_selection_statement2308 = frozenset([62]) + FOLLOW_62_in_selection_statement2310 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_selection_statement2312 = frozenset([63]) + FOLLOW_63_in_selection_statement2314 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_selection_statement2316 = frozenset([1]) + FOLLOW_111_in_iteration_statement2327 = frozenset([62]) + FOLLOW_62_in_iteration_statement2329 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_iteration_statement2333 = frozenset([63]) + FOLLOW_63_in_iteration_statement2335 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_iteration_statement2337 = frozenset([1]) + FOLLOW_112_in_iteration_statement2344 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_iteration_statement2346 = frozenset([111]) + FOLLOW_111_in_iteration_statement2348 = frozenset([62]) + FOLLOW_62_in_iteration_statement2350 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_iteration_statement2354 = frozenset([63]) + FOLLOW_63_in_iteration_statement2356 = frozenset([25]) + FOLLOW_25_in_iteration_statement2358 = frozenset([1]) + FOLLOW_113_in_iteration_statement2365 = frozenset([62]) + FOLLOW_62_in_iteration_statement2367 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_statement_in_iteration_statement2369 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_statement_in_iteration_statement2373 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 63, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_iteration_statement2375 = frozenset([63]) + FOLLOW_63_in_iteration_statement2378 = frozenset([4, 5, 6, 7, 8, 9, 10, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117]) + FOLLOW_statement_in_iteration_statement2380 = frozenset([1]) + FOLLOW_114_in_jump_statement2393 = frozenset([4]) + FOLLOW_IDENTIFIER_in_jump_statement2395 = frozenset([25]) + FOLLOW_25_in_jump_statement2397 = frozenset([1]) + FOLLOW_115_in_jump_statement2402 = frozenset([25]) + FOLLOW_25_in_jump_statement2404 = frozenset([1]) + FOLLOW_116_in_jump_statement2409 = frozenset([25]) + FOLLOW_25_in_jump_statement2411 = frozenset([1]) + FOLLOW_117_in_jump_statement2416 = frozenset([25]) + FOLLOW_25_in_jump_statement2418 = frozenset([1]) + FOLLOW_117_in_jump_statement2423 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_expression_in_jump_statement2425 = frozenset([25]) + FOLLOW_25_in_jump_statement2427 = frozenset([1]) + FOLLOW_declaration_specifiers_in_synpred2100 = frozenset([1]) + FOLLOW_declaration_specifiers_in_synpred4100 = frozenset([4, 58, 59, 60, 62, 66]) + FOLLOW_declarator_in_synpred4103 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_declaration_in_synpred4105 = frozenset([4, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_43_in_synpred4108 = frozenset([1]) + FOLLOW_declaration_in_synpred5118 = frozenset([1]) + FOLLOW_declaration_specifiers_in_synpred7157 = frozenset([1]) + FOLLOW_declaration_specifiers_in_synpred10207 = frozenset([1]) + FOLLOW_type_specifier_in_synpred14272 = frozenset([1]) + FOLLOW_type_qualifier_in_synpred15286 = frozenset([1]) + FOLLOW_type_qualifier_in_synpred33444 = frozenset([1]) + FOLLOW_IDENTIFIER_in_synpred34442 = frozenset([4, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66]) + FOLLOW_type_qualifier_in_synpred34444 = frozenset([4, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66]) + FOLLOW_declarator_in_synpred34447 = frozenset([1]) + FOLLOW_type_qualifier_in_synpred39566 = frozenset([1]) + FOLLOW_type_specifier_in_synpred40570 = frozenset([1]) + FOLLOW_pointer_in_synpred66784 = frozenset([4, 58, 59, 60, 62]) + FOLLOW_58_in_synpred66788 = frozenset([4, 59, 60, 62]) + FOLLOW_59_in_synpred66793 = frozenset([4, 60, 62]) + FOLLOW_60_in_synpred66798 = frozenset([4, 62]) + FOLLOW_direct_declarator_in_synpred66802 = frozenset([1]) + FOLLOW_declarator_suffix_in_synpred67821 = frozenset([1]) + FOLLOW_58_in_synpred69830 = frozenset([1]) + FOLLOW_declarator_suffix_in_synpred70838 = frozenset([1]) + FOLLOW_62_in_synpred73878 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_parameter_type_list_in_synpred73880 = frozenset([63]) + FOLLOW_63_in_synpred73882 = frozenset([1]) + FOLLOW_62_in_synpred74892 = frozenset([4]) + FOLLOW_identifier_list_in_synpred74894 = frozenset([63]) + FOLLOW_63_in_synpred74896 = frozenset([1]) + FOLLOW_type_qualifier_in_synpred75921 = frozenset([1]) + FOLLOW_pointer_in_synpred76924 = frozenset([1]) + FOLLOW_66_in_synpred77919 = frozenset([49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_qualifier_in_synpred77921 = frozenset([1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_pointer_in_synpred77924 = frozenset([1]) + FOLLOW_66_in_synpred78930 = frozenset([66]) + FOLLOW_pointer_in_synpred78932 = frozenset([1]) + FOLLOW_53_in_synpred81977 = frozenset([1]) + FOLLOW_27_in_synpred82974 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_53_in_synpred82977 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_parameter_declaration_in_synpred82981 = frozenset([1]) + FOLLOW_declarator_in_synpred83997 = frozenset([1]) + FOLLOW_abstract_declarator_in_synpred84999 = frozenset([1]) + FOLLOW_declaration_specifiers_in_synpred86994 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66]) + FOLLOW_declarator_in_synpred86997 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66]) + FOLLOW_abstract_declarator_in_synpred86999 = frozenset([1, 4, 53, 58, 59, 60, 62, 64, 66]) + FOLLOW_53_in_synpred861004 = frozenset([1]) + FOLLOW_specifier_qualifier_list_in_synpred901046 = frozenset([1, 62, 64, 66]) + FOLLOW_abstract_declarator_in_synpred901048 = frozenset([1]) + FOLLOW_direct_abstract_declarator_in_synpred911067 = frozenset([1]) + FOLLOW_62_in_synpred931086 = frozenset([62, 64, 66]) + FOLLOW_abstract_declarator_in_synpred931088 = frozenset([63]) + FOLLOW_63_in_synpred931090 = frozenset([1]) + FOLLOW_abstract_declarator_suffix_in_synpred941098 = frozenset([1]) + FOLLOW_62_in_synpred1091282 = frozenset([4, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61]) + FOLLOW_type_name_in_synpred1091284 = frozenset([63]) + FOLLOW_63_in_synpred1091286 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_cast_expression_in_synpred1091288 = frozenset([1]) + FOLLOW_74_in_synpred1141330 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_unary_expression_in_synpred1141332 = frozenset([1]) + FOLLOW_62_in_synpred1171420 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_argument_expression_list_in_synpred1171424 = frozenset([63]) + FOLLOW_63_in_synpred1171428 = frozenset([1]) + FOLLOW_62_in_synpred1181444 = frozenset([4, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66]) + FOLLOW_macro_parameter_list_in_synpred1181446 = frozenset([63]) + FOLLOW_63_in_synpred1181448 = frozenset([1]) + FOLLOW_66_in_synpred1201482 = frozenset([4]) + FOLLOW_IDENTIFIER_in_synpred1201486 = frozenset([1]) + FOLLOW_STRING_LITERAL_in_synpred1371683 = frozenset([1]) + FOLLOW_IDENTIFIER_in_synpred1381680 = frozenset([4, 9]) + FOLLOW_STRING_LITERAL_in_synpred1381683 = frozenset([1, 9]) + FOLLOW_lvalue_in_synpred1421744 = frozenset([28, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89]) + FOLLOW_assignment_operator_in_synpred1421746 = frozenset([4, 5, 6, 7, 8, 9, 10, 62, 66, 68, 69, 72, 73, 74, 77, 78, 79]) + FOLLOW_assignment_expression_in_synpred1421748 = frozenset([1]) + FOLLOW_expression_statement_in_synpred1692035 = frozenset([1]) + FOLLOW_macro_statement_in_synpred1732055 = frozenset([1]) + FOLLOW_asm2_statement_in_synpred1742060 = frozenset([1]) + FOLLOW_declaration_in_synpred1812166 = frozenset([1]) + FOLLOW_statement_list_in_synpred1822170 = frozenset([1]) + FOLLOW_declaration_in_synpred1862225 = frozenset([1]) + FOLLOW_statement_in_synpred1882242 = frozenset([1])