# 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 ## @file # The file defines the parser for C source files. # # THIS FILE IS AUTO-GENENERATED. PLEASE DON NOT MODIFY THIS FILE. # This file is generated by running: # java org.antlr.Tool C.g # # Copyright (c) 2009 - 2010, Intel Corporation All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # ## 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 # @param input Type: TokenStream # @param output= sys.stdout Type: TextIO def __init__(self,input,output= sys.stdout): super().__init__(input, output) self.checkVersion("4.7.1") self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) self._predicates = None 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) def StoreEnumerationDefinition(self,StartLine,StartOffset,EndLine,EndOffset,Text): 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) def StoreTypedefDefinition(self,StartLine,StartOffset,EndLine,EndOffset,FromText,ToText): 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) def StoreVariableDeclaration(self,StartLine,StartOffset,EndLine,EndOffset,ModifierText,DeclText): 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) class Translation_unitContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def external_declaration(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.External_declarationContext) else: return self.getTypedRuleContext(CParser.External_declarationContext,i) def getRuleIndex(self): return CParser.RULE_translation_unit # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterTranslation_unit" ): listener.enterTranslation_unit(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitTranslation_unit" ): listener.exitTranslation_unit(self) 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) finally: self.exitRule() return localctx class External_declarationContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def declarator(self): return self.getTypedRuleContext(CParser.DeclaratorContext,0) def declaration_specifiers(self): return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) # @param i=None Type: int def declaration(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.DeclarationContext) else: return self.getTypedRuleContext(CParser.DeclarationContext,i) def function_definition(self): return self.getTypedRuleContext(CParser.Function_definitionContext,0) def macro_statement(self): return self.getTypedRuleContext(CParser.Macro_statementContext,0) def getRuleIndex(self): return CParser.RULE_external_declaration # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterExternal_declaration" ): listener.enterExternal_declaration(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitExternal_declaration" ): listener.exitExternal_declaration(self) def external_declaration(self): 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() 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 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 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) pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Function_definitionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-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 def declarator(self): return self.getTypedRuleContext(CParser.DeclaratorContext,0) def compound_statement(self): return self.getTypedRuleContext(CParser.Compound_statementContext,0) def declaration_specifiers(self): return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) # @param i=None Type: int def declaration(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.DeclarationContext) else: return self.getTypedRuleContext(CParser.DeclarationContext,i) def getRuleIndex(self): return CParser.RULE_function_definition # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterFunction_definition" ): listener.enterFunction_definition(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitFunction_definition" ): listener.exitFunction_definition(self) def function_definition(self): localctx = CParser.Function_definitionContext(self, self._ctx, self.state) self.enterRule(localctx, 4, self.RULE_function_definition) 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 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) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Declaration_specifiersContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def storage_class_specifier(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Storage_class_specifierContext) else: return self.getTypedRuleContext(CParser.Storage_class_specifierContext,i) # @param i=None Type: int def type_specifier(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Type_specifierContext) else: return self.getTypedRuleContext(CParser.Type_specifierContext,i) # @param i=None Type: int def type_qualifier(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Type_qualifierContext) else: return self.getTypedRuleContext(CParser.Type_qualifierContext,i) def getRuleIndex(self): return CParser.RULE_declaration_specifiers # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterDeclaration_specifiers" ): listener.enterDeclaration_specifiers(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitDeclaration_specifiers" ): listener.exitDeclaration_specifiers(self) def declaration_specifiers(self): localctx = CParser.Declaration_specifiersContext(self, self._ctx, self.state) self.enterRule(localctx, 6, self.RULE_declaration_specifiers) 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 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.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.type_qualifier() pass else: raise NoViableAltException(self) 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 class DeclarationContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-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) def getRuleIndex(self): return CParser.RULE_declaration # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterDeclaration" ): listener.enterDeclaration(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitDeclaration" ): listener.exitDeclaration(self) def declaration(self): localctx = CParser.DeclarationContext(self, self._ctx, self.state) self.enterRule(localctx, 8, self.RULE_declaration) self._la = 0 # Token type 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) 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def init_declarator(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Init_declaratorContext) else: return self.getTypedRuleContext(CParser.Init_declaratorContext,i) def getRuleIndex(self): return CParser.RULE_init_declarator_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterInit_declarator_list" ): listener.enterInit_declarator_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitInit_declarator_list" ): listener.exitInit_declarator_list(self) def init_declarator_list(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 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 class Init_declaratorContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterInit_declarator" ): listener.enterInit_declarator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitInit_declarator" ): listener.exitInit_declarator(self) def init_declarator(self): localctx = CParser.Init_declaratorContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_init_declarator) self._la = 0 # Token type 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() 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_storage_class_specifier # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStorage_class_specifier" ): listener.enterStorage_class_specifier(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStorage_class_specifier" ): listener.exitStorage_class_specifier(self) 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 class Type_specifierContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser self.s = None # Struct_or_union_specifierContext self.e = None # Enum_specifierContext def struct_or_union_specifier(self): return self.getTypedRuleContext(CParser.Struct_or_union_specifierContext,0) def enum_specifier(self): return self.getTypedRuleContext(CParser.Enum_specifierContext,0) def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def declarator(self): return self.getTypedRuleContext(CParser.DeclaratorContext,0) # @param i=None Type: int def type_qualifier(self,i=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) def getRuleIndex(self): return CParser.RULE_type_specifier # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterType_specifier" ): listener.enterType_specifier(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitType_specifier" ): listener.exitType_specifier(self) def type_specifier(self): localctx = CParser.Type_specifierContext(self, self._ctx, self.state) self.enterRule(localctx, 16, self.RULE_type_specifier) 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 elif la_ == 13: self.enterOuterAlt(localctx, 13) self.state = 246 self.type_id() pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Type_idContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def getRuleIndex(self): return CParser.RULE_type_id # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterType_id" ): listener.enterType_id(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitType_id" ): listener.exitType_id(self) def type_id(self): localctx = CParser.Type_idContext(self, self._ctx, self.state) self.enterRule(localctx, 18, self.RULE_type_id) 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) finally: self.exitRule() return localctx class Struct_or_union_specifierContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def struct_or_union(self): return self.getTypedRuleContext(CParser.Struct_or_unionContext,0) def struct_declaration_list(self): return self.getTypedRuleContext(CParser.Struct_declaration_listContext,0) def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def getRuleIndex(self): return CParser.RULE_struct_or_union_specifier # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStruct_or_union_specifier" ): listener.enterStruct_or_union_specifier(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStruct_or_union_specifier" ): listener.exitStruct_or_union_specifier(self) def struct_or_union_specifier(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_struct_or_union # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStruct_or_union" ): listener.enterStruct_or_union(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStruct_or_union" ): listener.exitStruct_or_union(self) def struct_or_union(self): 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 class Struct_declaration_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def struct_declaration(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Struct_declarationContext) else: return self.getTypedRuleContext(CParser.Struct_declarationContext,i) def getRuleIndex(self): return CParser.RULE_struct_declaration_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStruct_declaration_list" ): listener.enterStruct_declaration_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStruct_declaration_list" ): listener.exitStruct_declaration_list(self) def struct_declaration_list(self): 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 class Struct_declarationContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def specifier_qualifier_list(self): return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0) def struct_declarator_list(self): return self.getTypedRuleContext(CParser.Struct_declarator_listContext,0) def getRuleIndex(self): return CParser.RULE_struct_declaration # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStruct_declaration" ): listener.enterStruct_declaration(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStruct_declaration" ): listener.exitStruct_declaration(self) def struct_declaration(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def type_qualifier(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Type_qualifierContext) else: return self.getTypedRuleContext(CParser.Type_qualifierContext,i) # @param i=None Type: int def type_specifier(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Type_specifierContext) else: return self.getTypedRuleContext(CParser.Type_specifierContext,i) def getRuleIndex(self): return CParser.RULE_specifier_qualifier_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterSpecifier_qualifier_list" ): listener.enterSpecifier_qualifier_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitSpecifier_qualifier_list" ): listener.exitSpecifier_qualifier_list(self) def specifier_qualifier_list(self): 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) 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 class Struct_declarator_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def struct_declarator(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Struct_declaratorContext) else: return self.getTypedRuleContext(CParser.Struct_declaratorContext,i) def getRuleIndex(self): return CParser.RULE_struct_declarator_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStruct_declarator_list" ): listener.enterStruct_declarator_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStruct_declarator_list" ): listener.exitStruct_declarator_list(self) 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 class Struct_declaratorContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def declarator(self): return self.getTypedRuleContext(CParser.DeclaratorContext,0) def constant_expression(self): return self.getTypedRuleContext(CParser.Constant_expressionContext,0) def getRuleIndex(self): return CParser.RULE_struct_declarator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStruct_declarator" ): listener.enterStruct_declarator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStruct_declarator" ): listener.exitStruct_declarator(self) def struct_declarator(self): 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() 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) 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def enumerator_list(self): return self.getTypedRuleContext(CParser.Enumerator_listContext,0) def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def getRuleIndex(self): return CParser.RULE_enum_specifier # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterEnum_specifier" ): listener.enterEnum_specifier(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitEnum_specifier" ): listener.exitEnum_specifier(self) def enum_specifier(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def enumerator(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.EnumeratorContext) else: return self.getTypedRuleContext(CParser.EnumeratorContext,i) def getRuleIndex(self): return CParser.RULE_enumerator_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterEnumerator_list" ): listener.enterEnumerator_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitEnumerator_list" ): listener.exitEnumerator_list(self) def enumerator_list(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def constant_expression(self): return self.getTypedRuleContext(CParser.Constant_expressionContext,0) def getRuleIndex(self): return CParser.RULE_enumerator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterEnumerator" ): listener.enterEnumerator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitEnumerator" ): listener.exitEnumerator(self) 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 class Type_qualifierContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_type_qualifier # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterType_qualifier" ): listener.enterType_qualifier(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitType_qualifier" ): listener.exitType_qualifier(self) def type_qualifier(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def direct_declarator(self): return self.getTypedRuleContext(CParser.Direct_declaratorContext,0) def pointer(self): return self.getTypedRuleContext(CParser.PointerContext,0) def getRuleIndex(self): return CParser.RULE_declarator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterDeclarator" ): listener.enterDeclarator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitDeclarator" ): listener.exitDeclarator(self) def declarator(self): 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() 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) 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) 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) self.state = 346 self.direct_declarator() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 347 self.pointer() pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Direct_declaratorContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) # @param i=None Type: int def declarator_suffix(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Declarator_suffixContext) else: return self.getTypedRuleContext(CParser.Declarator_suffixContext,i) def declarator(self): return self.getTypedRuleContext(CParser.DeclaratorContext,0) def getRuleIndex(self): return CParser.RULE_direct_declarator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterDirect_declarator" ): listener.enterDirect_declarator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitDirect_declarator" ): listener.exitDirect_declarator(self) def direct_declarator(self): 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) 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 Declarator_suffixContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def constant_expression(self): return self.getTypedRuleContext(CParser.Constant_expressionContext,0) def parameter_type_list(self): return self.getTypedRuleContext(CParser.Parameter_type_listContext,0) def identifier_list(self): return self.getTypedRuleContext(CParser.Identifier_listContext,0) def getRuleIndex(self): return CParser.RULE_declarator_suffix # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterDeclarator_suffix" ): listener.enterDeclarator_suffix(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitDeclarator_suffix" ): listener.exitDeclarator_suffix(self) 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 class PointerContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def type_qualifier(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Type_qualifierContext) else: return self.getTypedRuleContext(CParser.Type_qualifierContext,i) def pointer(self): return self.getTypedRuleContext(CParser.PointerContext,0) def getRuleIndex(self): return CParser.RULE_pointer # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterPointer" ): listener.enterPointer(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitPointer" ): listener.exitPointer(self) def pointer(self): 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() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 397 self.match(CParser.T__41) self.state = 398 self.pointer() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) self.state = 399 self.match(CParser.T__41) pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Parameter_type_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def parameter_list(self): return self.getTypedRuleContext(CParser.Parameter_listContext,0) def getRuleIndex(self): return CParser.RULE_parameter_type_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterParameter_type_list" ): listener.enterParameter_type_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitParameter_type_list" ): listener.exitParameter_type_list(self) 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 class Parameter_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def parameter_declaration(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Parameter_declarationContext) else: return self.getTypedRuleContext(CParser.Parameter_declarationContext,i) def getRuleIndex(self): return CParser.RULE_parameter_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterParameter_list" ): listener.enterParameter_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitParameter_list" ): listener.exitParameter_list(self) def parameter_list(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def declaration_specifiers(self): return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0) # @param i=None Type: int def declarator(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.DeclaratorContext) else: return self.getTypedRuleContext(CParser.DeclaratorContext,i) # @param i=None Type: int def abstract_declarator(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Abstract_declaratorContext) else: return self.getTypedRuleContext(CParser.Abstract_declaratorContext,i) def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) # @param i=None Type: int def pointer(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.PointerContext) else: return self.getTypedRuleContext(CParser.PointerContext,i) def getRuleIndex(self): return CParser.RULE_parameter_declaration # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterParameter_declaration" ): listener.enterParameter_declaration(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitParameter_declaration" ): listener.exitParameter_declaration(self) 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 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) 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) self.state = 438 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 Identifier_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def IDENTIFIER(self,i=None): if i is None: return self.getTokens(CParser.IDENTIFIER) else: return self.getToken(CParser.IDENTIFIER, i) def getRuleIndex(self): return CParser.RULE_identifier_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterIdentifier_list" ): listener.enterIdentifier_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitIdentifier_list" ): listener.exitIdentifier_list(self) def identifier_list(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def specifier_qualifier_list(self): return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0) def abstract_declarator(self): return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0) def type_id(self): return self.getTypedRuleContext(CParser.Type_idContext,0) def getRuleIndex(self): return CParser.RULE_type_name # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterType_name" ): listener.enterType_name(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitType_name" ): listener.exitType_name(self) 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() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 453 self.type_id() pass 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def pointer(self): return self.getTypedRuleContext(CParser.PointerContext,0) def direct_abstract_declarator(self): return self.getTypedRuleContext(CParser.Direct_abstract_declaratorContext,0) def getRuleIndex(self): return CParser.RULE_abstract_declarator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAbstract_declarator" ): listener.enterAbstract_declarator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAbstract_declarator" ): listener.exitAbstract_declarator(self) 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() 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 class Direct_abstract_declaratorContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def abstract_declarator(self): return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0) # @param i=None Type: int def abstract_declarator_suffix(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Abstract_declarator_suffixContext) else: return self.getTypedRuleContext(CParser.Abstract_declarator_suffixContext,i) def getRuleIndex(self): return CParser.RULE_direct_abstract_declarator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterDirect_abstract_declarator" ): listener.enterDirect_abstract_declarator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitDirect_abstract_declarator" ): listener.exitDirect_abstract_declarator(self) def direct_abstract_declarator(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def constant_expression(self): return self.getTypedRuleContext(CParser.Constant_expressionContext,0) def parameter_type_list(self): return self.getTypedRuleContext(CParser.Parameter_type_listContext,0) def getRuleIndex(self): return CParser.RULE_abstract_declarator_suffix # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAbstract_declarator_suffix" ): listener.enterAbstract_declarator_suffix(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAbstract_declarator_suffix" ): listener.exitAbstract_declarator_suffix(self) def abstract_declarator_suffix(self): 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 class InitializerContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def assignment_expression(self): return self.getTypedRuleContext(CParser.Assignment_expressionContext,0) def initializer_list(self): return self.getTypedRuleContext(CParser.Initializer_listContext,0) def getRuleIndex(self): return CParser.RULE_initializer # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterInitializer" ): listener.enterInitializer(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitInitializer" ): listener.exitInitializer(self) 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) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Initializer_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def initializer(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.InitializerContext) else: return self.getTypedRuleContext(CParser.InitializerContext,i) def getRuleIndex(self): return CParser.RULE_initializer_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterInitializer_list" ): listener.enterInitializer_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitInitializer_list" ): listener.exitInitializer_list(self) def initializer_list(self): 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 class Argument_expression_listContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def assignment_expression(self,i=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_argument_expression_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterArgument_expression_list" ): listener.enterArgument_expression_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitArgument_expression_list" ): listener.exitArgument_expression_list(self) 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 class Additive_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def multiplicative_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Multiplicative_expressionContext) else: return self.getTypedRuleContext(CParser.Multiplicative_expressionContext,i) def getRuleIndex(self): return CParser.RULE_additive_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAdditive_expression" ): listener.enterAdditive_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAdditive_expression" ): listener.exitAdditive_expression(self) 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) self.state = 531 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 Multiplicative_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def cast_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Cast_expressionContext) else: return self.getTypedRuleContext(CParser.Cast_expressionContext,i) def getRuleIndex(self): return CParser.RULE_multiplicative_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterMultiplicative_expression" ): listener.enterMultiplicative_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitMultiplicative_expression" ): listener.exitMultiplicative_expression(self) def multiplicative_expression(self): 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 class Cast_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def type_name(self): return self.getTypedRuleContext(CParser.Type_nameContext,0) def cast_expression(self): return self.getTypedRuleContext(CParser.Cast_expressionContext,0) def unary_expression(self): return self.getTypedRuleContext(CParser.Unary_expressionContext,0) def getRuleIndex(self): return CParser.RULE_cast_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterCast_expression" ): listener.enterCast_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitCast_expression" ): listener.exitCast_expression(self) def cast_expression(self): 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 elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 549 self.unary_expression() pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class Unary_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def postfix_expression(self): return self.getTypedRuleContext(CParser.Postfix_expressionContext,0) def unary_expression(self): return self.getTypedRuleContext(CParser.Unary_expressionContext,0) def unary_operator(self): return self.getTypedRuleContext(CParser.Unary_operatorContext,0) def cast_expression(self): return self.getTypedRuleContext(CParser.Cast_expressionContext,0) def type_name(self): return self.getTypedRuleContext(CParser.Type_nameContext,0) def getRuleIndex(self): return CParser.RULE_unary_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterUnary_expression" ): listener.enterUnary_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitUnary_expression" ): listener.exitUnary_expression(self) def unary_expression(self): 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 la_ == 4: self.enterOuterAlt(localctx, 4) self.state = 557 self.unary_operator() self.state = 558 self.cast_expression() pass 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-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) # @param i=None Type: int def expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.ExpressionContext) else: return self.getTypedRuleContext(CParser.ExpressionContext,i) # @param i=None Type: int def macro_parameter_list(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Macro_parameter_listContext) else: return self.getTypedRuleContext(CParser.Macro_parameter_listContext,i) # @param i=None Type: int def argument_expression_list(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Argument_expression_listContext) else: return self.getTypedRuleContext(CParser.Argument_expression_listContext,i) # @param i=None Type: int def IDENTIFIER(self,i=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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterPostfix_expression" ): listener.enterPostfix_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitPostfix_expression" ): listener.exitPostfix_expression(self) def postfix_expression(self): localctx = CParser.Postfix_expressionContext(self, self._ctx, self.state) self.enterRule(localctx, 80, self.RULE_postfix_expression) 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.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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def parameter_declaration(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Parameter_declarationContext) else: return self.getTypedRuleContext(CParser.Parameter_declarationContext,i) def getRuleIndex(self): return CParser.RULE_macro_parameter_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterMacro_parameter_list" ): listener.enterMacro_parameter_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitMacro_parameter_list" ): listener.exitMacro_parameter_list(self) def macro_parameter_list(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_unary_operator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterUnary_operator" ): listener.enterUnary_operator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitUnary_operator" ): listener.exitUnary_operator(self) 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 class Primary_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def constant(self): return self.getTypedRuleContext(CParser.ConstantContext,0) def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def getRuleIndex(self): return CParser.RULE_primary_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterPrimary_expression" ): listener.enterPrimary_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitPrimary_expression" ): listener.exitPrimary_expression(self) 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 class ConstantContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def HEX_LITERAL(self): return self.getToken(CParser.HEX_LITERAL, 0) def OCTAL_LITERAL(self): return self.getToken(CParser.OCTAL_LITERAL, 0) def DECIMAL_LITERAL(self): return self.getToken(CParser.DECIMAL_LITERAL, 0) def CHARACTER_LITERAL(self): return self.getToken(CParser.CHARACTER_LITERAL, 0) # @param i=None Type: int def IDENTIFIER(self,i=None): if i is None: return self.getTokens(CParser.IDENTIFIER) else: return self.getToken(CParser.IDENTIFIER, i) # @param i=None Type: int def STRING_LITERAL(self,i=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) def getRuleIndex(self): return CParser.RULE_constant # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterConstant" ): listener.enterConstant(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitConstant" ): listener.exitConstant(self) def constant(self): 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) 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) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class ExpressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def assignment_expression(self,i=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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterExpression" ): listener.enterExpression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitExpression" ): listener.exitExpression(self) def expression(self): 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 Constant_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def conditional_expression(self): return self.getTypedRuleContext(CParser.Conditional_expressionContext,0) def getRuleIndex(self): return CParser.RULE_constant_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterConstant_expression" ): listener.enterConstant_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitConstant_expression" ): listener.exitConstant_expression(self) 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) finally: self.exitRule() return localctx class Assignment_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def lvalue(self): return self.getTypedRuleContext(CParser.LvalueContext,0) def assignment_operator(self): return self.getTypedRuleContext(CParser.Assignment_operatorContext,0) def assignment_expression(self): return self.getTypedRuleContext(CParser.Assignment_expressionContext,0) def conditional_expression(self): return self.getTypedRuleContext(CParser.Conditional_expressionContext,0) def getRuleIndex(self): return CParser.RULE_assignment_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAssignment_expression" ): listener.enterAssignment_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAssignment_expression" ): listener.exitAssignment_expression(self) 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 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 class LvalueContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def unary_expression(self): return self.getTypedRuleContext(CParser.Unary_expressionContext,0) def getRuleIndex(self): return CParser.RULE_lvalue # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterLvalue" ): listener.enterLvalue(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitLvalue" ): listener.exitLvalue(self) def lvalue(self): localctx = CParser.LvalueContext(self, self._ctx, self.state) self.enterRule(localctx, 96, self.RULE_lvalue) 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) finally: self.exitRule() return localctx class Assignment_operatorContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_assignment_operator # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAssignment_operator" ): listener.enterAssignment_operator(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAssignment_operator" ): listener.exitAssignment_operator(self) 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 class Conditional_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-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) def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def conditional_expression(self): return self.getTypedRuleContext(CParser.Conditional_expressionContext,0) def getRuleIndex(self): return CParser.RULE_conditional_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterConditional_expression" ): listener.enterConditional_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitConditional_expression" ): listener.exitConditional_expression(self) def conditional_expression(self): 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 class Logical_or_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def logical_and_expression(self,i=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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterLogical_or_expression" ): listener.enterLogical_or_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitLogical_or_expression" ): listener.exitLogical_or_expression(self) def logical_or_expression(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def inclusive_or_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Inclusive_or_expressionContext) else: return self.getTypedRuleContext(CParser.Inclusive_or_expressionContext,i) def getRuleIndex(self): return CParser.RULE_logical_and_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterLogical_and_expression" ): listener.enterLogical_and_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitLogical_and_expression" ): listener.exitLogical_and_expression(self) 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 class Inclusive_or_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def exclusive_or_expression(self,i=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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterInclusive_or_expression" ): listener.enterInclusive_or_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitInclusive_or_expression" ): listener.exitInclusive_or_expression(self) 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 class Exclusive_or_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def and_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.And_expressionContext) else: return self.getTypedRuleContext(CParser.And_expressionContext,i) def getRuleIndex(self): return CParser.RULE_exclusive_or_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterExclusive_or_expression" ): listener.enterExclusive_or_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitExclusive_or_expression" ): listener.exitExclusive_or_expression(self) def exclusive_or_expression(self): 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 class And_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def equality_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Equality_expressionContext) else: return self.getTypedRuleContext(CParser.Equality_expressionContext,i) def getRuleIndex(self): return CParser.RULE_and_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAnd_expression" ): listener.enterAnd_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAnd_expression" ): listener.exitAnd_expression(self) 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 class Equality_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def relational_expression(self,i=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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterEquality_expression" ): listener.enterEquality_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitEquality_expression" ): listener.exitEquality_expression(self) 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 class Relational_expressionContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def shift_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Shift_expressionContext) else: return self.getTypedRuleContext(CParser.Shift_expressionContext,i) def getRuleIndex(self): return CParser.RULE_relational_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterRelational_expression" ): listener.enterRelational_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitRelational_expression" ): listener.exitRelational_expression(self) 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def additive_expression(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.Additive_expressionContext) else: return self.getTypedRuleContext(CParser.Additive_expressionContext,i) def getRuleIndex(self): return CParser.RULE_shift_expression # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterShift_expression" ): listener.enterShift_expression(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitShift_expression" ): listener.exitShift_expression(self) def shift_expression(self): 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 class StatementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def labeled_statement(self): return self.getTypedRuleContext(CParser.Labeled_statementContext,0) def compound_statement(self): return self.getTypedRuleContext(CParser.Compound_statementContext,0) def expression_statement(self): return self.getTypedRuleContext(CParser.Expression_statementContext,0) def selection_statement(self): return self.getTypedRuleContext(CParser.Selection_statementContext,0) 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) def asm2_statement(self): return self.getTypedRuleContext(CParser.Asm2_statementContext,0) def asm1_statement(self): return self.getTypedRuleContext(CParser.Asm1_statementContext,0) def asm_statement(self): return self.getTypedRuleContext(CParser.Asm_statementContext,0) def declaration(self): return self.getTypedRuleContext(CParser.DeclarationContext,0) def getRuleIndex(self): return CParser.RULE_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStatement" ): listener.enterStatement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStatement" ): listener.exitStatement(self) 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 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAsm2_statement" ): listener.enterAsm2_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAsm2_statement" ): listener.exitAsm2_statement(self) 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 class Asm1_statementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_asm1_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAsm1_statement" ): listener.enterAsm1_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAsm1_statement" ): listener.exitAsm1_statement(self) def asm1_statement(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def getRuleIndex(self): return CParser.RULE_asm_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterAsm_statement" ): listener.enterAsm_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitAsm_statement" ): listener.exitAsm_statement(self) def asm_statement(self): 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 class Macro_statementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) # @param i=None Type: int def declaration(self,i=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) def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def getRuleIndex(self): return CParser.RULE_macro_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterMacro_statement" ): listener.enterMacro_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitMacro_statement" ): listener.exitMacro_statement(self) def macro_statement(self): 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) 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 # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterLabeled_statement" ): listener.enterLabeled_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitLabeled_statement" ): listener.exitLabeled_statement(self) 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 class Compound_statementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def declaration(self,i=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) def getRuleIndex(self): return CParser.RULE_compound_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterCompound_statement" ): listener.enterCompound_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitCompound_statement" ): listener.exitCompound_statement(self) 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser # @param i=None Type: int def statement(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.StatementContext) else: return self.getTypedRuleContext(CParser.StatementContext,i) def getRuleIndex(self): return CParser.RULE_statement_list # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterStatement_list" ): listener.enterStatement_list(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitStatement_list" ): listener.exitStatement_list(self) def statement_list(self): 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 class Expression_statementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def getRuleIndex(self): return CParser.RULE_expression_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterExpression_statement" ): listener.enterExpression_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitExpression_statement" ): listener.exitExpression_statement(self) 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 class Selection_statementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser self.e = None # ExpressionContext # @param i=None Type: int def statement(self,i=None): if i is None: return self.getTypedRuleContexts(CParser.StatementContext) else: return self.getTypedRuleContext(CParser.StatementContext,i) def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def getRuleIndex(self): return CParser.RULE_selection_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterSelection_statement" ): listener.enterSelection_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitSelection_statement" ): listener.exitSelection_statement(self) def selection_statement(self): 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() 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): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser self.e = None # ExpressionContext def statement(self): return self.getTypedRuleContext(CParser.StatementContext,0) def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def getRuleIndex(self): return CParser.RULE_iteration_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterIteration_statement" ): listener.enterIteration_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitIteration_statement" ): listener.exitIteration_statement(self) 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 class Jump_statementContext(ParserRuleContext): # @param parent=None Type: ParserRuleContext # @param invokingState=-1 Type: int def __init__(self,parser,parent=None,invokingState=-1): super().__init__(parent, invokingState) self.parser = parser def IDENTIFIER(self): return self.getToken(CParser.IDENTIFIER, 0) def expression(self): return self.getTypedRuleContext(CParser.ExpressionContext,0) def getRuleIndex(self): return CParser.RULE_jump_statement # @param listener Type: ParseTreeListener def enterRule(self,listener): if hasattr( listener, "enterJump_statement" ): listener.enterJump_statement(self) # @param listener Type: ParseTreeListener def exitRule(self,listener): if hasattr( listener, "exitJump_statement" ): listener.exitJump_statement(self) def jump_statement(self): 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