]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/Python/Eot/CParser4/CParser.py
BaseTools: Eot tool Python3 adaption
[mirror_edk2.git] / BaseTools / Source / Python / Eot / CParser4 / CParser.py
CommitLineData
8189be6f
FB
1# Generated from C.g4 by ANTLR 4.7.1\r
2# encoding: utf-8\r
3from antlr4 import *\r
4from io import StringIO\r
5from typing.io import TextIO\r
6import sys\r
7\r
8\r
9## @file\r
10# The file defines the parser for C source files.\r
11#\r
12# THIS FILE IS AUTO-GENENERATED. PLEASE DON NOT MODIFY THIS FILE.\r
13# This file is generated by running:\r
14# java org.antlr.Tool C.g\r
15#\r
16# Copyright (c) 2009 - 2010, Intel Corporation All rights reserved.\r
17#\r
18# This program and the accompanying materials are licensed and made available\r
19# under the terms and conditions of the BSD License which accompanies this\r
20# distribution. The full text of the license may be found at:\r
21# http://opensource.org/licenses/bsd-license.php\r
22#\r
23# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
24# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
25#\r
26##\r
27\r
28import Ecc.CodeFragment as CodeFragment\r
29import Ecc.FileProfile as FileProfile\r
30\r
31def serializedATN():\r
32 with StringIO() as buf:\r
33 buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3k")\r
34 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")\r
35 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")\r
36 buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23")\r
37 buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31")\r
38 buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36")\r
39 buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t")\r
40 buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4")\r
41 buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64")\r
42 buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t")\r
43 buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t")\r
44 buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\3\2\7\2\u0092\n\2\f\2\16\2\u0095")\r
45 buf.write("\13\2\3\3\5\3\u0098\n\3\3\3\3\3\7\3\u009c\n\3\f\3\16\3")\r
46 buf.write("\u009f\13\3\3\3\3\3\3\3\3\3\3\3\3\3\5\3\u00a7\n\3\5\3")\r
47 buf.write("\u00a9\n\3\3\4\5\4\u00ac\n\4\3\4\3\4\6\4\u00b0\n\4\r\4")\r
48 buf.write("\16\4\u00b1\3\4\3\4\3\4\5\4\u00b7\n\4\3\4\3\4\3\5\3\5")\r
49 buf.write("\3\5\6\5\u00be\n\5\r\5\16\5\u00bf\3\6\3\6\5\6\u00c4\n")\r
50 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")\r
51 buf.write("\6\u00d1\n\6\3\7\3\7\3\7\7\7\u00d6\n\7\f\7\16\7\u00d9")\r
52 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")\r
53 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")\r
54 buf.write("\7\n\u00f3\n\n\f\n\16\n\u00f6\13\n\3\n\3\n\5\n\u00fa\n")\r
55 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")\r
56 buf.write("\3\f\3\f\5\f\u0109\n\f\3\r\3\r\3\16\6\16\u010e\n\16\r")\r
57 buf.write("\16\16\16\u010f\3\17\3\17\3\17\3\17\3\20\3\20\6\20\u0118")\r
58 buf.write("\n\20\r\20\16\20\u0119\3\21\3\21\3\21\7\21\u011f\n\21")\r
59 buf.write("\f\21\16\21\u0122\13\21\3\22\3\22\3\22\5\22\u0127\n\22")\r
60 buf.write("\3\22\3\22\5\22\u012b\n\22\3\23\3\23\3\23\3\23\5\23\u0131")\r
61 buf.write("\n\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\5\23\u013a\n")\r
62 buf.write("\23\3\23\3\23\3\23\3\23\5\23\u0140\n\23\3\24\3\24\3\24")\r
63 buf.write("\7\24\u0145\n\24\f\24\16\24\u0148\13\24\3\25\3\25\3\25")\r
64 buf.write("\5\25\u014d\n\25\3\26\3\26\3\27\5\27\u0152\n\27\3\27\5")\r
65 buf.write("\27\u0155\n\27\3\27\5\27\u0158\n\27\3\27\5\27\u015b\n")\r
66 buf.write("\27\3\27\3\27\5\27\u015f\n\27\3\30\3\30\7\30\u0163\n\30")\r
67 buf.write("\f\30\16\30\u0166\13\30\3\30\3\30\5\30\u016a\n\30\3\30")\r
68 buf.write("\3\30\3\30\6\30\u016f\n\30\r\30\16\30\u0170\5\30\u0173")\r
69 buf.write("\n\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31")\r
70 buf.write("\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0185\n\31\3\32\3")\r
71 buf.write("\32\6\32\u0189\n\32\r\32\16\32\u018a\3\32\5\32\u018e\n")\r
72 buf.write("\32\3\32\3\32\3\32\5\32\u0193\n\32\3\33\3\33\3\33\5\33")\r
73 buf.write("\u0198\n\33\3\33\5\33\u019b\n\33\3\34\3\34\3\34\5\34\u01a0")\r
74 buf.write("\n\34\3\34\7\34\u01a3\n\34\f\34\16\34\u01a6\13\34\3\35")\r
75 buf.write("\3\35\3\35\7\35\u01ab\n\35\f\35\16\35\u01ae\13\35\3\35")\r
76 buf.write("\5\35\u01b1\n\35\3\35\7\35\u01b4\n\35\f\35\16\35\u01b7")\r
77 buf.write("\13\35\3\35\5\35\u01ba\n\35\3\36\3\36\3\36\7\36\u01bf")\r
78 buf.write("\n\36\f\36\16\36\u01c2\13\36\3\37\3\37\5\37\u01c6\n\37")\r
79 buf.write("\3\37\5\37\u01c9\n\37\3 \3 \5 \u01cd\n \3 \5 \u01d0\n")\r
80 buf.write(" \3!\3!\3!\3!\3!\5!\u01d7\n!\3!\7!\u01da\n!\f!\16!\u01dd")\r
81 buf.write("\13!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\5")\r
82 buf.write("\"\u01eb\n\"\3#\3#\3#\3#\5#\u01f1\n#\3#\3#\5#\u01f5\n")\r
83 buf.write("#\3$\3$\3$\7$\u01fa\n$\f$\16$\u01fd\13$\3%\3%\5%\u0201")\r
84 buf.write("\n%\3%\3%\3%\5%\u0206\n%\7%\u0208\n%\f%\16%\u020b\13%")\r
85 buf.write("\3&\3&\3&\3&\3&\7&\u0212\n&\f&\16&\u0215\13&\3\'\3\'\3")\r
86 buf.write("\'\3\'\3\'\3\'\3\'\7\'\u021e\n\'\f\'\16\'\u0221\13\'\3")\r
87 buf.write("(\3(\3(\3(\3(\3(\5(\u0229\n(\3)\3)\3)\3)\3)\3)\3)\3)\3")\r
88 buf.write(")\3)\3)\3)\3)\3)\3)\5)\u023a\n)\3*\3*\3*\3*\3*\3*\3*\3")\r
89 buf.write("*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3")\r
90 buf.write("*\3*\3*\3*\7*\u0259\n*\f*\16*\u025c\13*\3+\3+\3+\7+\u0261")\r
91 buf.write("\n+\f+\16+\u0264\13+\3,\3,\3-\3-\3-\3-\3-\3-\5-\u026e")\r
92 buf.write("\n-\3.\3.\3.\3.\3.\7.\u0275\n.\f.\16.\u0278\13.\3.\6.")\r
93 buf.write("\u027b\n.\r.\16.\u027c\6.\u027f\n.\r.\16.\u0280\3.\7.")\r
94 buf.write("\u0284\n.\f.\16.\u0287\13.\3.\5.\u028a\n.\3/\3/\3/\7/")\r
95 buf.write("\u028f\n/\f/\16/\u0292\13/\3\60\3\60\3\61\3\61\3\61\3")\r
96 buf.write("\61\3\61\5\61\u029b\n\61\3\62\3\62\3\63\3\63\3\64\3\64")\r
97 buf.write("\3\64\3\64\3\64\3\64\3\64\5\64\u02a8\n\64\3\65\3\65\3")\r
98 buf.write("\65\7\65\u02ad\n\65\f\65\16\65\u02b0\13\65\3\66\3\66\3")\r
99 buf.write("\66\7\66\u02b5\n\66\f\66\16\66\u02b8\13\66\3\67\3\67\3")\r
100 buf.write("\67\7\67\u02bd\n\67\f\67\16\67\u02c0\13\67\38\38\38\7")\r
101 buf.write("8\u02c5\n8\f8\168\u02c8\138\39\39\39\79\u02cd\n9\f9\16")\r
102 buf.write("9\u02d0\139\3:\3:\3:\7:\u02d5\n:\f:\16:\u02d8\13:\3;\3")\r
103 buf.write(";\3;\7;\u02dd\n;\f;\16;\u02e0\13;\3<\3<\3<\7<\u02e5\n")\r
104 buf.write("<\f<\16<\u02e8\13<\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\5")\r
105 buf.write("=\u02f5\n=\3>\5>\u02f8\n>\3>\3>\3>\7>\u02fd\n>\f>\16>")\r
106 buf.write("\u0300\13>\3>\3>\3>\3?\3?\3?\7?\u0308\n?\f?\16?\u030b")\r
107 buf.write("\13?\3?\3?\3@\3@\3@\7@\u0312\n@\f@\16@\u0315\13@\3@\3")\r
108 buf.write("@\3A\3A\3A\7A\u031c\nA\fA\16A\u031f\13A\3A\5A\u0322\n")\r
109 buf.write("A\3A\5A\u0325\nA\3A\3A\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3")\r
110 buf.write("B\5B\u0334\nB\3C\3C\7C\u0338\nC\fC\16C\u033b\13C\3C\5")\r
111 buf.write("C\u033e\nC\3C\3C\3D\6D\u0343\nD\rD\16D\u0344\3E\3E\3E")\r
112 buf.write("\3E\5E\u034b\nE\3F\3F\3F\3F\3F\3F\3F\3F\5F\u0355\nF\3")\r
113 buf.write("F\3F\3F\3F\3F\3F\5F\u035d\nF\3G\3G\3G\3G\3G\3G\3G\3G\3")\r
114 buf.write("G\3G\3G\3G\3G\3G\3G\3G\5G\u036f\nG\3H\3H\3H\3H\3H\3H\3")\r
115 buf.write("H\3H\3H\3H\3H\3H\3H\5H\u037e\nH\3H\2\2I\2\4\6\b\n\f\16")\r
116 buf.write("\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDF")\r
117 buf.write("HJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086")\r
118 buf.write("\u0088\u008a\u008c\u008e\2\f\3\2\b\f\3\2\27\30\3\2\33")\r
119 buf.write("\'\5\2,,./\679\4\2\7\7:C\3\2IJ\3\2KN\3\2OP\3\2\4\4\3\2")\r
120 buf.write("\26\26\2\u03d8\2\u0093\3\2\2\2\4\u00a8\3\2\2\2\6\u00ab")\r
121 buf.write("\3\2\2\2\b\u00bd\3\2\2\2\n\u00d0\3\2\2\2\f\u00d2\3\2\2")\r
122 buf.write("\2\16\u00da\3\2\2\2\20\u00df\3\2\2\2\22\u00f9\3\2\2\2")\r
123 buf.write("\24\u00fb\3\2\2\2\26\u0108\3\2\2\2\30\u010a\3\2\2\2\32")\r
124 buf.write("\u010d\3\2\2\2\34\u0111\3\2\2\2\36\u0117\3\2\2\2 \u011b")\r
125 buf.write("\3\2\2\2\"\u012a\3\2\2\2$\u013f\3\2\2\2&\u0141\3\2\2\2")\r
126 buf.write("(\u0149\3\2\2\2*\u014e\3\2\2\2,\u015e\3\2\2\2.\u0172\3")\r
127 buf.write("\2\2\2\60\u0184\3\2\2\2\62\u0192\3\2\2\2\64\u0194\3\2")\r
128 buf.write("\2\2\66\u019c\3\2\2\28\u01b9\3\2\2\2:\u01bb\3\2\2\2<\u01c8")\r
129 buf.write("\3\2\2\2>\u01cf\3\2\2\2@\u01d6\3\2\2\2B\u01ea\3\2\2\2")\r
130 buf.write("D\u01f4\3\2\2\2F\u01f6\3\2\2\2H\u01fe\3\2\2\2J\u020c\3")\r
131 buf.write("\2\2\2L\u0216\3\2\2\2N\u0228\3\2\2\2P\u0239\3\2\2\2R\u023b")\r
132 buf.write("\3\2\2\2T\u025d\3\2\2\2V\u0265\3\2\2\2X\u026d\3\2\2\2")\r
133 buf.write("Z\u0289\3\2\2\2\\\u028b\3\2\2\2^\u0293\3\2\2\2`\u029a")\r
134 buf.write("\3\2\2\2b\u029c\3\2\2\2d\u029e\3\2\2\2f\u02a0\3\2\2\2")\r
135 buf.write("h\u02a9\3\2\2\2j\u02b1\3\2\2\2l\u02b9\3\2\2\2n\u02c1\3")\r
136 buf.write("\2\2\2p\u02c9\3\2\2\2r\u02d1\3\2\2\2t\u02d9\3\2\2\2v\u02e1")\r
137 buf.write("\3\2\2\2x\u02f4\3\2\2\2z\u02f7\3\2\2\2|\u0304\3\2\2\2")\r
138 buf.write("~\u030e\3\2\2\2\u0080\u0318\3\2\2\2\u0082\u0333\3\2\2")\r
139 buf.write("\2\u0084\u0335\3\2\2\2\u0086\u0342\3\2\2\2\u0088\u034a")\r
140 buf.write("\3\2\2\2\u008a\u035c\3\2\2\2\u008c\u036e\3\2\2\2\u008e")\r
141 buf.write("\u037d\3\2\2\2\u0090\u0092\5\4\3\2\u0091\u0090\3\2\2\2")\r
142 buf.write("\u0092\u0095\3\2\2\2\u0093\u0091\3\2\2\2\u0093\u0094\3")\r
143 buf.write("\2\2\2\u0094\3\3\2\2\2\u0095\u0093\3\2\2\2\u0096\u0098")\r
144 buf.write("\5\b\5\2\u0097\u0096\3\2\2\2\u0097\u0098\3\2\2\2\u0098")\r
145 buf.write("\u0099\3\2\2\2\u0099\u009d\5,\27\2\u009a\u009c\5\n\6\2")\r
146 buf.write("\u009b\u009a\3\2\2\2\u009c\u009f\3\2\2\2\u009d\u009b\3")\r
147 buf.write("\2\2\2\u009d\u009e\3\2\2\2\u009e\u00a0\3\2\2\2\u009f\u009d")\r
148 buf.write("\3\2\2\2\u00a0\u00a1\7\3\2\2\u00a1\u00a9\3\2\2\2\u00a2")\r
149 buf.write("\u00a9\5\6\4\2\u00a3\u00a9\5\n\6\2\u00a4\u00a6\5\u0080")\r
150 buf.write("A\2\u00a5\u00a7\7\4\2\2\u00a6\u00a5\3\2\2\2\u00a6\u00a7")\r
151 buf.write("\3\2\2\2\u00a7\u00a9\3\2\2\2\u00a8\u0097\3\2\2\2\u00a8")\r
152 buf.write("\u00a2\3\2\2\2\u00a8\u00a3\3\2\2\2\u00a8\u00a4\3\2\2\2")\r
153 buf.write("\u00a9\5\3\2\2\2\u00aa\u00ac\5\b\5\2\u00ab\u00aa\3\2\2")\r
154 buf.write("\2\u00ab\u00ac\3\2\2\2\u00ac\u00ad\3\2\2\2\u00ad\u00b6")\r
155 buf.write("\5,\27\2\u00ae\u00b0\5\n\6\2\u00af\u00ae\3\2\2\2\u00b0")\r
156 buf.write("\u00b1\3\2\2\2\u00b1\u00af\3\2\2\2\u00b1\u00b2\3\2\2\2")\r
157 buf.write("\u00b2\u00b3\3\2\2\2\u00b3\u00b4\5\u0084C\2\u00b4\u00b7")\r
158 buf.write("\3\2\2\2\u00b5\u00b7\5\u0084C\2\u00b6\u00af\3\2\2\2\u00b6")\r
159 buf.write("\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00b9\b\4\1\2")\r
160 buf.write("\u00b9\7\3\2\2\2\u00ba\u00be\5\20\t\2\u00bb\u00be\5\22")\r
161 buf.write("\n\2\u00bc\u00be\5*\26\2\u00bd\u00ba\3\2\2\2\u00bd\u00bb")\r
162 buf.write("\3\2\2\2\u00bd\u00bc\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf")\r
163 buf.write("\u00bd\3\2\2\2\u00bf\u00c0\3\2\2\2\u00c0\t\3\2\2\2\u00c1")\r
164 buf.write("\u00c3\7\5\2\2\u00c2\u00c4\5\b\5\2\u00c3\u00c2\3\2\2\2")\r
165 buf.write("\u00c3\u00c4\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c6\5")\r
166 buf.write("\f\7\2\u00c6\u00c7\7\4\2\2\u00c7\u00c8\b\6\1\2\u00c8\u00d1")\r
167 buf.write("\3\2\2\2\u00c9\u00cb\5\b\5\2\u00ca\u00cc\5\f\7\2\u00cb")\r
168 buf.write("\u00ca\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc\u00cd\3\2\2\2")\r
169 buf.write("\u00cd\u00ce\7\4\2\2\u00ce\u00cf\b\6\1\2\u00cf\u00d1\3")\r
170 buf.write("\2\2\2\u00d0\u00c1\3\2\2\2\u00d0\u00c9\3\2\2\2\u00d1\13")\r
171 buf.write("\3\2\2\2\u00d2\u00d7\5\16\b\2\u00d3\u00d4\7\6\2\2\u00d4")\r
172 buf.write("\u00d6\5\16\b\2\u00d5\u00d3\3\2\2\2\u00d6\u00d9\3\2\2")\r
173 buf.write("\2\u00d7\u00d5\3\2\2\2\u00d7\u00d8\3\2\2\2\u00d8\r\3\2")\r
174 buf.write("\2\2\u00d9\u00d7\3\2\2\2\u00da\u00dd\5,\27\2\u00db\u00dc")\r
175 buf.write("\7\7\2\2\u00dc\u00de\5D#\2\u00dd\u00db\3\2\2\2\u00dd\u00de")\r
176 buf.write("\3\2\2\2\u00de\17\3\2\2\2\u00df\u00e0\t\2\2\2\u00e0\21")\r
177 buf.write("\3\2\2\2\u00e1\u00fa\7\r\2\2\u00e2\u00fa\7\16\2\2\u00e3")\r
178 buf.write("\u00fa\7\17\2\2\u00e4\u00fa\7\20\2\2\u00e5\u00fa\7\21")\r
179 buf.write("\2\2\u00e6\u00fa\7\22\2\2\u00e7\u00fa\7\23\2\2\u00e8\u00fa")\r
180 buf.write("\7\24\2\2\u00e9\u00fa\7\25\2\2\u00ea\u00eb\5\26\f\2\u00eb")\r
181 buf.write("\u00ec\b\n\1\2\u00ec\u00fa\3\2\2\2\u00ed\u00ee\5$\23\2")\r
182 buf.write("\u00ee\u00ef\b\n\1\2\u00ef\u00fa\3\2\2\2\u00f0\u00f4\7")\r
183 buf.write("_\2\2\u00f1\u00f3\5*\26\2\u00f2\u00f1\3\2\2\2\u00f3\u00f6")\r
184 buf.write("\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f4\u00f5\3\2\2\2\u00f5")\r
185 buf.write("\u00f7\3\2\2\2\u00f6\u00f4\3\2\2\2\u00f7\u00fa\5,\27\2")\r
186 buf.write("\u00f8\u00fa\5\24\13\2\u00f9\u00e1\3\2\2\2\u00f9\u00e2")\r
187 buf.write("\3\2\2\2\u00f9\u00e3\3\2\2\2\u00f9\u00e4\3\2\2\2\u00f9")\r
188 buf.write("\u00e5\3\2\2\2\u00f9\u00e6\3\2\2\2\u00f9\u00e7\3\2\2\2")\r
189 buf.write("\u00f9\u00e8\3\2\2\2\u00f9\u00e9\3\2\2\2\u00f9\u00ea\3")\r
190 buf.write("\2\2\2\u00f9\u00ed\3\2\2\2\u00f9\u00f0\3\2\2\2\u00f9\u00f8")\r
191 buf.write("\3\2\2\2\u00fa\23\3\2\2\2\u00fb\u00fc\7_\2\2\u00fc\25")\r
192 buf.write("\3\2\2\2\u00fd\u00ff\5\30\r\2\u00fe\u0100\7_\2\2\u00ff")\r
193 buf.write("\u00fe\3\2\2\2\u00ff\u0100\3\2\2\2\u0100\u0101\3\2\2\2")\r
194 buf.write("\u0101\u0102\7\3\2\2\u0102\u0103\5\32\16\2\u0103\u0104")\r
195 buf.write("\7\26\2\2\u0104\u0109\3\2\2\2\u0105\u0106\5\30\r\2\u0106")\r
196 buf.write("\u0107\7_\2\2\u0107\u0109\3\2\2\2\u0108\u00fd\3\2\2\2")\r
197 buf.write("\u0108\u0105\3\2\2\2\u0109\27\3\2\2\2\u010a\u010b\t\3")\r
198 buf.write("\2\2\u010b\31\3\2\2\2\u010c\u010e\5\34\17\2\u010d\u010c")\r
199 buf.write("\3\2\2\2\u010e\u010f\3\2\2\2\u010f\u010d\3\2\2\2\u010f")\r
200 buf.write("\u0110\3\2\2\2\u0110\33\3\2\2\2\u0111\u0112\5\36\20\2")\r
201 buf.write("\u0112\u0113\5 \21\2\u0113\u0114\7\4\2\2\u0114\35\3\2")\r
202 buf.write("\2\2\u0115\u0118\5*\26\2\u0116\u0118\5\22\n\2\u0117\u0115")\r
203 buf.write("\3\2\2\2\u0117\u0116\3\2\2\2\u0118\u0119\3\2\2\2\u0119")\r
204 buf.write("\u0117\3\2\2\2\u0119\u011a\3\2\2\2\u011a\37\3\2\2\2\u011b")\r
205 buf.write("\u0120\5\"\22\2\u011c\u011d\7\6\2\2\u011d\u011f\5\"\22")\r
206 buf.write("\2\u011e\u011c\3\2\2\2\u011f\u0122\3\2\2\2\u0120\u011e")\r
207 buf.write("\3\2\2\2\u0120\u0121\3\2\2\2\u0121!\3\2\2\2\u0122\u0120")\r
208 buf.write("\3\2\2\2\u0123\u0126\5,\27\2\u0124\u0125\7\31\2\2\u0125")\r
209 buf.write("\u0127\5^\60\2\u0126\u0124\3\2\2\2\u0126\u0127\3\2\2\2")\r
210 buf.write("\u0127\u012b\3\2\2\2\u0128\u0129\7\31\2\2\u0129\u012b")\r
211 buf.write("\5^\60\2\u012a\u0123\3\2\2\2\u012a\u0128\3\2\2\2\u012b")\r
212 buf.write("#\3\2\2\2\u012c\u012d\7\32\2\2\u012d\u012e\7\3\2\2\u012e")\r
213 buf.write("\u0130\5&\24\2\u012f\u0131\7\6\2\2\u0130\u012f\3\2\2\2")\r
214 buf.write("\u0130\u0131\3\2\2\2\u0131\u0132\3\2\2\2\u0132\u0133\7")\r
215 buf.write("\26\2\2\u0133\u0140\3\2\2\2\u0134\u0135\7\32\2\2\u0135")\r
216 buf.write("\u0136\7_\2\2\u0136\u0137\7\3\2\2\u0137\u0139\5&\24\2")\r
217 buf.write("\u0138\u013a\7\6\2\2\u0139\u0138\3\2\2\2\u0139\u013a\3")\r
218 buf.write("\2\2\2\u013a\u013b\3\2\2\2\u013b\u013c\7\26\2\2\u013c")\r
219 buf.write("\u0140\3\2\2\2\u013d\u013e\7\32\2\2\u013e\u0140\7_\2\2")\r
220 buf.write("\u013f\u012c\3\2\2\2\u013f\u0134\3\2\2\2\u013f\u013d\3")\r
221 buf.write("\2\2\2\u0140%\3\2\2\2\u0141\u0146\5(\25\2\u0142\u0143")\r
222 buf.write("\7\6\2\2\u0143\u0145\5(\25\2\u0144\u0142\3\2\2\2\u0145")\r
223 buf.write("\u0148\3\2\2\2\u0146\u0144\3\2\2\2\u0146\u0147\3\2\2\2")\r
224 buf.write("\u0147\'\3\2\2\2\u0148\u0146\3\2\2\2\u0149\u014c\7_\2")\r
225 buf.write("\2\u014a\u014b\7\7\2\2\u014b\u014d\5^\60\2\u014c\u014a")\r
226 buf.write("\3\2\2\2\u014c\u014d\3\2\2\2\u014d)\3\2\2\2\u014e\u014f")\r
227 buf.write("\t\4\2\2\u014f+\3\2\2\2\u0150\u0152\5\62\32\2\u0151\u0150")\r
228 buf.write("\3\2\2\2\u0151\u0152\3\2\2\2\u0152\u0154\3\2\2\2\u0153")\r
229 buf.write("\u0155\7$\2\2\u0154\u0153\3\2\2\2\u0154\u0155\3\2\2\2")\r
230 buf.write("\u0155\u0157\3\2\2\2\u0156\u0158\7%\2\2\u0157\u0156\3")\r
231 buf.write("\2\2\2\u0157\u0158\3\2\2\2\u0158\u015a\3\2\2\2\u0159\u015b")\r
232 buf.write("\7&\2\2\u015a\u0159\3\2\2\2\u015a\u015b\3\2\2\2\u015b")\r
233 buf.write("\u015c\3\2\2\2\u015c\u015f\5.\30\2\u015d\u015f\5\62\32")\r
234 buf.write("\2\u015e\u0151\3\2\2\2\u015e\u015d\3\2\2\2\u015f-\3\2")\r
235 buf.write("\2\2\u0160\u0164\7_\2\2\u0161\u0163\5\60\31\2\u0162\u0161")\r
236 buf.write("\3\2\2\2\u0163\u0166\3\2\2\2\u0164\u0162\3\2\2\2\u0164")\r
237 buf.write("\u0165\3\2\2\2\u0165\u0173\3\2\2\2\u0166\u0164\3\2\2\2")\r
238 buf.write("\u0167\u0169\7(\2\2\u0168\u016a\7$\2\2\u0169\u0168\3\2")\r
239 buf.write("\2\2\u0169\u016a\3\2\2\2\u016a\u016b\3\2\2\2\u016b\u016c")\r
240 buf.write("\5,\27\2\u016c\u016e\7)\2\2\u016d\u016f\5\60\31\2\u016e")\r
241 buf.write("\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170\u016e\3\2\2\2")\r
242 buf.write("\u0170\u0171\3\2\2\2\u0171\u0173\3\2\2\2\u0172\u0160\3")\r
243 buf.write("\2\2\2\u0172\u0167\3\2\2\2\u0173/\3\2\2\2\u0174\u0175")\r
244 buf.write("\7*\2\2\u0175\u0176\5^\60\2\u0176\u0177\7+\2\2\u0177\u0185")\r
245 buf.write("\3\2\2\2\u0178\u0179\7*\2\2\u0179\u0185\7+\2\2\u017a\u017b")\r
246 buf.write("\7(\2\2\u017b\u017c\5\64\33\2\u017c\u017d\7)\2\2\u017d")\r
247 buf.write("\u0185\3\2\2\2\u017e\u017f\7(\2\2\u017f\u0180\5:\36\2")\r
248 buf.write("\u0180\u0181\7)\2\2\u0181\u0185\3\2\2\2\u0182\u0183\7")\r
249 buf.write("(\2\2\u0183\u0185\7)\2\2\u0184\u0174\3\2\2\2\u0184\u0178")\r
250 buf.write("\3\2\2\2\u0184\u017a\3\2\2\2\u0184\u017e\3\2\2\2\u0184")\r
251 buf.write("\u0182\3\2\2\2\u0185\61\3\2\2\2\u0186\u0188\7,\2\2\u0187")\r
252 buf.write("\u0189\5*\26\2\u0188\u0187\3\2\2\2\u0189\u018a\3\2\2\2")\r
253 buf.write("\u018a\u0188\3\2\2\2\u018a\u018b\3\2\2\2\u018b\u018d\3")\r
254 buf.write("\2\2\2\u018c\u018e\5\62\32\2\u018d\u018c\3\2\2\2\u018d")\r
255 buf.write("\u018e\3\2\2\2\u018e\u0193\3\2\2\2\u018f\u0190\7,\2\2")\r
256 buf.write("\u0190\u0193\5\62\32\2\u0191\u0193\7,\2\2\u0192\u0186")\r
257 buf.write("\3\2\2\2\u0192\u018f\3\2\2\2\u0192\u0191\3\2\2\2\u0193")\r
258 buf.write("\63\3\2\2\2\u0194\u019a\5\66\34\2\u0195\u0197\7\6\2\2")\r
259 buf.write("\u0196\u0198\7\37\2\2\u0197\u0196\3\2\2\2\u0197\u0198")\r
260 buf.write("\3\2\2\2\u0198\u0199\3\2\2\2\u0199\u019b\7-\2\2\u019a")\r
261 buf.write("\u0195\3\2\2\2\u019a\u019b\3\2\2\2\u019b\65\3\2\2\2\u019c")\r
262 buf.write("\u01a4\58\35\2\u019d\u019f\7\6\2\2\u019e\u01a0\7\37\2")\r
263 buf.write("\2\u019f\u019e\3\2\2\2\u019f\u01a0\3\2\2\2\u01a0\u01a1")\r
264 buf.write("\3\2\2\2\u01a1\u01a3\58\35\2\u01a2\u019d\3\2\2\2\u01a3")\r
265 buf.write("\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2\2\2")\r
266 buf.write("\u01a5\67\3\2\2\2\u01a6\u01a4\3\2\2\2\u01a7\u01ac\5\b")\r
267 buf.write("\5\2\u01a8\u01ab\5,\27\2\u01a9\u01ab\5> \2\u01aa\u01a8")\r
268 buf.write("\3\2\2\2\u01aa\u01a9\3\2\2\2\u01ab\u01ae\3\2\2\2\u01ac")\r
269 buf.write("\u01aa\3\2\2\2\u01ac\u01ad\3\2\2\2\u01ad\u01b0\3\2\2\2")\r
270 buf.write("\u01ae\u01ac\3\2\2\2\u01af\u01b1\7\37\2\2\u01b0\u01af")\r
271 buf.write("\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1\u01ba\3\2\2\2\u01b2")\r
272 buf.write("\u01b4\5\62\32\2\u01b3\u01b2\3\2\2\2\u01b4\u01b7\3\2\2")\r
273 buf.write("\2\u01b5\u01b3\3\2\2\2\u01b5\u01b6\3\2\2\2\u01b6\u01b8")\r
274 buf.write("\3\2\2\2\u01b7\u01b5\3\2\2\2\u01b8\u01ba\7_\2\2\u01b9")\r
275 buf.write("\u01a7\3\2\2\2\u01b9\u01b5\3\2\2\2\u01ba9\3\2\2\2\u01bb")\r
276 buf.write("\u01c0\7_\2\2\u01bc\u01bd\7\6\2\2\u01bd\u01bf\7_\2\2\u01be")\r
277 buf.write("\u01bc\3\2\2\2\u01bf\u01c2\3\2\2\2\u01c0\u01be\3\2\2\2")\r
278 buf.write("\u01c0\u01c1\3\2\2\2\u01c1;\3\2\2\2\u01c2\u01c0\3\2\2")\r
279 buf.write("\2\u01c3\u01c5\5\36\20\2\u01c4\u01c6\5> \2\u01c5\u01c4")\r
280 buf.write("\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6\u01c9\3\2\2\2\u01c7")\r
281 buf.write("\u01c9\5\24\13\2\u01c8\u01c3\3\2\2\2\u01c8\u01c7\3\2\2")\r
282 buf.write("\2\u01c9=\3\2\2\2\u01ca\u01cc\5\62\32\2\u01cb\u01cd\5")\r
283 buf.write("@!\2\u01cc\u01cb\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd\u01d0")\r
284 buf.write("\3\2\2\2\u01ce\u01d0\5@!\2\u01cf\u01ca\3\2\2\2\u01cf\u01ce")\r
285 buf.write("\3\2\2\2\u01d0?\3\2\2\2\u01d1\u01d2\7(\2\2\u01d2\u01d3")\r
286 buf.write("\5> \2\u01d3\u01d4\7)\2\2\u01d4\u01d7\3\2\2\2\u01d5\u01d7")\r
287 buf.write("\5B\"\2\u01d6\u01d1\3\2\2\2\u01d6\u01d5\3\2\2\2\u01d7")\r
288 buf.write("\u01db\3\2\2\2\u01d8\u01da\5B\"\2\u01d9\u01d8\3\2\2\2")\r
289 buf.write("\u01da\u01dd\3\2\2\2\u01db\u01d9\3\2\2\2\u01db\u01dc\3")\r
290 buf.write("\2\2\2\u01dcA\3\2\2\2\u01dd\u01db\3\2\2\2\u01de\u01df")\r
291 buf.write("\7*\2\2\u01df\u01eb\7+\2\2\u01e0\u01e1\7*\2\2\u01e1\u01e2")\r
292 buf.write("\5^\60\2\u01e2\u01e3\7+\2\2\u01e3\u01eb\3\2\2\2\u01e4")\r
293 buf.write("\u01e5\7(\2\2\u01e5\u01eb\7)\2\2\u01e6\u01e7\7(\2\2\u01e7")\r
294 buf.write("\u01e8\5\64\33\2\u01e8\u01e9\7)\2\2\u01e9\u01eb\3\2\2")\r
295 buf.write("\2\u01ea\u01de\3\2\2\2\u01ea\u01e0\3\2\2\2\u01ea\u01e4")\r
296 buf.write("\3\2\2\2\u01ea\u01e6\3\2\2\2\u01ebC\3\2\2\2\u01ec\u01f5")\r
297 buf.write("\5`\61\2\u01ed\u01ee\7\3\2\2\u01ee\u01f0\5F$\2\u01ef\u01f1")\r
298 buf.write("\7\6\2\2\u01f0\u01ef\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1")\r
299 buf.write("\u01f2\3\2\2\2\u01f2\u01f3\7\26\2\2\u01f3\u01f5\3\2\2")\r
300 buf.write("\2\u01f4\u01ec\3\2\2\2\u01f4\u01ed\3\2\2\2\u01f5E\3\2")\r
301 buf.write("\2\2\u01f6\u01fb\5D#\2\u01f7\u01f8\7\6\2\2\u01f8\u01fa")\r
302 buf.write("\5D#\2\u01f9\u01f7\3\2\2\2\u01fa\u01fd\3\2\2\2\u01fb\u01f9")\r
303 buf.write("\3\2\2\2\u01fb\u01fc\3\2\2\2\u01fcG\3\2\2\2\u01fd\u01fb")\r
304 buf.write("\3\2\2\2\u01fe\u0200\5`\61\2\u01ff\u0201\7\37\2\2\u0200")\r
305 buf.write("\u01ff\3\2\2\2\u0200\u0201\3\2\2\2\u0201\u0209\3\2\2\2")\r
306 buf.write("\u0202\u0203\7\6\2\2\u0203\u0205\5`\61\2\u0204\u0206\7")\r
307 buf.write("\37\2\2\u0205\u0204\3\2\2\2\u0205\u0206\3\2\2\2\u0206")\r
308 buf.write("\u0208\3\2\2\2\u0207\u0202\3\2\2\2\u0208\u020b\3\2\2\2")\r
309 buf.write("\u0209\u0207\3\2\2\2\u0209\u020a\3\2\2\2\u020aI\3\2\2")\r
310 buf.write("\2\u020b\u0209\3\2\2\2\u020c\u0213\5L\'\2\u020d\u020e")\r
311 buf.write("\7.\2\2\u020e\u0212\5L\'\2\u020f\u0210\7/\2\2\u0210\u0212")\r
312 buf.write("\5L\'\2\u0211\u020d\3\2\2\2\u0211\u020f\3\2\2\2\u0212")\r
313 buf.write("\u0215\3\2\2\2\u0213\u0211\3\2\2\2\u0213\u0214\3\2\2\2")\r
314 buf.write("\u0214K\3\2\2\2\u0215\u0213\3\2\2\2\u0216\u021f\5N(\2")\r
315 buf.write("\u0217\u0218\7,\2\2\u0218\u021e\5N(\2\u0219\u021a\7\60")\r
316 buf.write("\2\2\u021a\u021e\5N(\2\u021b\u021c\7\61\2\2\u021c\u021e")\r
317 buf.write("\5N(\2\u021d\u0217\3\2\2\2\u021d\u0219\3\2\2\2\u021d\u021b")\r
318 buf.write("\3\2\2\2\u021e\u0221\3\2\2\2\u021f\u021d\3\2\2\2\u021f")\r
319 buf.write("\u0220\3\2\2\2\u0220M\3\2\2\2\u0221\u021f\3\2\2\2\u0222")\r
320 buf.write("\u0223\7(\2\2\u0223\u0224\5<\37\2\u0224\u0225\7)\2\2\u0225")\r
321 buf.write("\u0226\5N(\2\u0226\u0229\3\2\2\2\u0227\u0229\5P)\2\u0228")\r
322 buf.write("\u0222\3\2\2\2\u0228\u0227\3\2\2\2\u0229O\3\2\2\2\u022a")\r
323 buf.write("\u023a\5R*\2\u022b\u022c\7\62\2\2\u022c\u023a\5P)\2\u022d")\r
324 buf.write("\u022e\7\63\2\2\u022e\u023a\5P)\2\u022f\u0230\5V,\2\u0230")\r
325 buf.write("\u0231\5N(\2\u0231\u023a\3\2\2\2\u0232\u0233\7\64\2\2")\r
326 buf.write("\u0233\u023a\5P)\2\u0234\u0235\7\64\2\2\u0235\u0236\7")\r
327 buf.write("(\2\2\u0236\u0237\5<\37\2\u0237\u0238\7)\2\2\u0238\u023a")\r
328 buf.write("\3\2\2\2\u0239\u022a\3\2\2\2\u0239\u022b\3\2\2\2\u0239")\r
329 buf.write("\u022d\3\2\2\2\u0239\u022f\3\2\2\2\u0239\u0232\3\2\2\2")\r
330 buf.write("\u0239\u0234\3\2\2\2\u023aQ\3\2\2\2\u023b\u023c\5X-\2")\r
331 buf.write("\u023c\u025a\b*\1\2\u023d\u023e\7*\2\2\u023e\u023f\5\\")\r
332 buf.write("/\2\u023f\u0240\7+\2\2\u0240\u0259\3\2\2\2\u0241\u0242")\r
333 buf.write("\7(\2\2\u0242\u0243\7)\2\2\u0243\u0259\b*\1\2\u0244\u0245")\r
334 buf.write("\7(\2\2\u0245\u0246\5H%\2\u0246\u0247\7)\2\2\u0247\u0248")\r
335 buf.write("\b*\1\2\u0248\u0259\3\2\2\2\u0249\u024a\7(\2\2\u024a\u024b")\r
336 buf.write("\5T+\2\u024b\u024c\7)\2\2\u024c\u0259\3\2\2\2\u024d\u024e")\r
337 buf.write("\7\65\2\2\u024e\u024f\7_\2\2\u024f\u0259\b*\1\2\u0250")\r
338 buf.write("\u0251\7,\2\2\u0251\u0252\7_\2\2\u0252\u0259\b*\1\2\u0253")\r
339 buf.write("\u0254\7\66\2\2\u0254\u0255\7_\2\2\u0255\u0259\b*\1\2")\r
340 buf.write("\u0256\u0259\7\62\2\2\u0257\u0259\7\63\2\2\u0258\u023d")\r
341 buf.write("\3\2\2\2\u0258\u0241\3\2\2\2\u0258\u0244\3\2\2\2\u0258")\r
342 buf.write("\u0249\3\2\2\2\u0258\u024d\3\2\2\2\u0258\u0250\3\2\2\2")\r
343 buf.write("\u0258\u0253\3\2\2\2\u0258\u0256\3\2\2\2\u0258\u0257\3")\r
344 buf.write("\2\2\2\u0259\u025c\3\2\2\2\u025a\u0258\3\2\2\2\u025a\u025b")\r
345 buf.write("\3\2\2\2\u025bS\3\2\2\2\u025c\u025a\3\2\2\2\u025d\u0262")\r
346 buf.write("\58\35\2\u025e\u025f\7\6\2\2\u025f\u0261\58\35\2\u0260")\r
347 buf.write("\u025e\3\2\2\2\u0261\u0264\3\2\2\2\u0262\u0260\3\2\2\2")\r
348 buf.write("\u0262\u0263\3\2\2\2\u0263U\3\2\2\2\u0264\u0262\3\2\2")\r
349 buf.write("\2\u0265\u0266\t\5\2\2\u0266W\3\2\2\2\u0267\u026e\7_\2")\r
350 buf.write("\2\u0268\u026e\5Z.\2\u0269\u026a\7(\2\2\u026a\u026b\5")\r
351 buf.write("\\/\2\u026b\u026c\7)\2\2\u026c\u026e\3\2\2\2\u026d\u0267")\r
352 buf.write("\3\2\2\2\u026d\u0268\3\2\2\2\u026d\u0269\3\2\2\2\u026e")\r
353 buf.write("Y\3\2\2\2\u026f\u028a\7b\2\2\u0270\u028a\7d\2\2\u0271")\r
354 buf.write("\u028a\7c\2\2\u0272\u028a\7`\2\2\u0273\u0275\7_\2\2\u0274")\r
355 buf.write("\u0273\3\2\2\2\u0275\u0278\3\2\2\2\u0276\u0274\3\2\2\2")\r
356 buf.write("\u0276\u0277\3\2\2\2\u0277\u027a\3\2\2\2\u0278\u0276\3")\r
357 buf.write("\2\2\2\u0279\u027b\7a\2\2\u027a\u0279\3\2\2\2\u027b\u027c")\r
358 buf.write("\3\2\2\2\u027c\u027a\3\2\2\2\u027c\u027d\3\2\2\2\u027d")\r
359 buf.write("\u027f\3\2\2\2\u027e\u0276\3\2\2\2\u027f\u0280\3\2\2\2")\r
360 buf.write("\u0280\u027e\3\2\2\2\u0280\u0281\3\2\2\2\u0281\u0285\3")\r
361 buf.write("\2\2\2\u0282\u0284\7_\2\2\u0283\u0282\3\2\2\2\u0284\u0287")\r
362 buf.write("\3\2\2\2\u0285\u0283\3\2\2\2\u0285\u0286\3\2\2\2\u0286")\r
363 buf.write("\u028a\3\2\2\2\u0287\u0285\3\2\2\2\u0288\u028a\7e\2\2")\r
364 buf.write("\u0289\u026f\3\2\2\2\u0289\u0270\3\2\2\2\u0289\u0271\3")\r
365 buf.write("\2\2\2\u0289\u0272\3\2\2\2\u0289\u027e\3\2\2\2\u0289\u0288")\r
366 buf.write("\3\2\2\2\u028a[\3\2\2\2\u028b\u0290\5`\61\2\u028c\u028d")\r
367 buf.write("\7\6\2\2\u028d\u028f\5`\61\2\u028e\u028c\3\2\2\2\u028f")\r
368 buf.write("\u0292\3\2\2\2\u0290\u028e\3\2\2\2\u0290\u0291\3\2\2\2")\r
369 buf.write("\u0291]\3\2\2\2\u0292\u0290\3\2\2\2\u0293\u0294\5f\64")\r
370 buf.write("\2\u0294_\3\2\2\2\u0295\u0296\5b\62\2\u0296\u0297\5d\63")\r
371 buf.write("\2\u0297\u0298\5`\61\2\u0298\u029b\3\2\2\2\u0299\u029b")\r
372 buf.write("\5f\64\2\u029a\u0295\3\2\2\2\u029a\u0299\3\2\2\2\u029b")\r
373 buf.write("a\3\2\2\2\u029c\u029d\5P)\2\u029dc\3\2\2\2\u029e\u029f")\r
374 buf.write("\t\6\2\2\u029fe\3\2\2\2\u02a0\u02a7\5h\65\2\u02a1\u02a2")\r
375 buf.write("\7D\2\2\u02a2\u02a3\5\\/\2\u02a3\u02a4\7\31\2\2\u02a4")\r
376 buf.write("\u02a5\5f\64\2\u02a5\u02a6\b\64\1\2\u02a6\u02a8\3\2\2")\r
377 buf.write("\2\u02a7\u02a1\3\2\2\2\u02a7\u02a8\3\2\2\2\u02a8g\3\2")\r
378 buf.write("\2\2\u02a9\u02ae\5j\66\2\u02aa\u02ab\7E\2\2\u02ab\u02ad")\r
379 buf.write("\5j\66\2\u02ac\u02aa\3\2\2\2\u02ad\u02b0\3\2\2\2\u02ae")\r
380 buf.write("\u02ac\3\2\2\2\u02ae\u02af\3\2\2\2\u02afi\3\2\2\2\u02b0")\r
381 buf.write("\u02ae\3\2\2\2\u02b1\u02b6\5l\67\2\u02b2\u02b3\7F\2\2")\r
382 buf.write("\u02b3\u02b5\5l\67\2\u02b4\u02b2\3\2\2\2\u02b5\u02b8\3")\r
383 buf.write("\2\2\2\u02b6\u02b4\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7k")\r
384 buf.write("\3\2\2\2\u02b8\u02b6\3\2\2\2\u02b9\u02be\5n8\2\u02ba\u02bb")\r
385 buf.write("\7G\2\2\u02bb\u02bd\5n8\2\u02bc\u02ba\3\2\2\2\u02bd\u02c0")\r
386 buf.write("\3\2\2\2\u02be\u02bc\3\2\2\2\u02be\u02bf\3\2\2\2\u02bf")\r
387 buf.write("m\3\2\2\2\u02c0\u02be\3\2\2\2\u02c1\u02c6\5p9\2\u02c2")\r
388 buf.write("\u02c3\7H\2\2\u02c3\u02c5\5p9\2\u02c4\u02c2\3\2\2\2\u02c5")\r
389 buf.write("\u02c8\3\2\2\2\u02c6\u02c4\3\2\2\2\u02c6\u02c7\3\2\2\2")\r
390 buf.write("\u02c7o\3\2\2\2\u02c8\u02c6\3\2\2\2\u02c9\u02ce\5r:\2")\r
391 buf.write("\u02ca\u02cb\7\67\2\2\u02cb\u02cd\5r:\2\u02cc\u02ca\3")\r
392 buf.write("\2\2\2\u02cd\u02d0\3\2\2\2\u02ce\u02cc\3\2\2\2\u02ce\u02cf")\r
393 buf.write("\3\2\2\2\u02cfq\3\2\2\2\u02d0\u02ce\3\2\2\2\u02d1\u02d6")\r
394 buf.write("\5t;\2\u02d2\u02d3\t\7\2\2\u02d3\u02d5\5t;\2\u02d4\u02d2")\r
395 buf.write("\3\2\2\2\u02d5\u02d8\3\2\2\2\u02d6\u02d4\3\2\2\2\u02d6")\r
396 buf.write("\u02d7\3\2\2\2\u02d7s\3\2\2\2\u02d8\u02d6\3\2\2\2\u02d9")\r
397 buf.write("\u02de\5v<\2\u02da\u02db\t\b\2\2\u02db\u02dd\5v<\2\u02dc")\r
398 buf.write("\u02da\3\2\2\2\u02dd\u02e0\3\2\2\2\u02de\u02dc\3\2\2\2")\r
399 buf.write("\u02de\u02df\3\2\2\2\u02dfu\3\2\2\2\u02e0\u02de\3\2\2")\r
400 buf.write("\2\u02e1\u02e6\5J&\2\u02e2\u02e3\t\t\2\2\u02e3\u02e5\5")\r
401 buf.write("J&\2\u02e4\u02e2\3\2\2\2\u02e5\u02e8\3\2\2\2\u02e6\u02e4")\r
402 buf.write("\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7w\3\2\2\2\u02e8\u02e6")\r
403 buf.write("\3\2\2\2\u02e9\u02f5\5\u0082B\2\u02ea\u02f5\5\u0084C\2")\r
404 buf.write("\u02eb\u02f5\5\u0088E\2\u02ec\u02f5\5\u008aF\2\u02ed\u02f5")\r
405 buf.write("\5\u008cG\2\u02ee\u02f5\5\u008eH\2\u02ef\u02f5\5\u0080")\r
406 buf.write("A\2\u02f0\u02f5\5z>\2\u02f1\u02f5\5|?\2\u02f2\u02f5\5")\r
407 buf.write("~@\2\u02f3\u02f5\5\n\6\2\u02f4\u02e9\3\2\2\2\u02f4\u02ea")\r
408 buf.write("\3\2\2\2\u02f4\u02eb\3\2\2\2\u02f4\u02ec\3\2\2\2\u02f4")\r
409 buf.write("\u02ed\3\2\2\2\u02f4\u02ee\3\2\2\2\u02f4\u02ef\3\2\2\2")\r
410 buf.write("\u02f4\u02f0\3\2\2\2\u02f4\u02f1\3\2\2\2\u02f4\u02f2\3")\r
411 buf.write("\2\2\2\u02f4\u02f3\3\2\2\2\u02f5y\3\2\2\2\u02f6\u02f8")\r
412 buf.write("\7Q\2\2\u02f7\u02f6\3\2\2\2\u02f7\u02f8\3\2\2\2\u02f8")\r
413 buf.write("\u02f9\3\2\2\2\u02f9\u02fa\7_\2\2\u02fa\u02fe\7(\2\2\u02fb")\r
414 buf.write("\u02fd\n\n\2\2\u02fc\u02fb\3\2\2\2\u02fd\u0300\3\2\2\2")\r
415 buf.write("\u02fe\u02fc\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff\u0301\3")\r
416 buf.write("\2\2\2\u0300\u02fe\3\2\2\2\u0301\u0302\7)\2\2\u0302\u0303")\r
417 buf.write("\7\4\2\2\u0303{\3\2\2\2\u0304\u0305\7R\2\2\u0305\u0309")\r
418 buf.write("\7\3\2\2\u0306\u0308\n\13\2\2\u0307\u0306\3\2\2\2\u0308")\r
419 buf.write("\u030b\3\2\2\2\u0309\u0307\3\2\2\2\u0309\u030a\3\2\2\2")\r
420 buf.write("\u030a\u030c\3\2\2\2\u030b\u0309\3\2\2\2\u030c\u030d\7")\r
421 buf.write("\26\2\2\u030d}\3\2\2\2\u030e\u030f\7S\2\2\u030f\u0313")\r
422 buf.write("\7\3\2\2\u0310\u0312\n\13\2\2\u0311\u0310\3\2\2\2\u0312")\r
423 buf.write("\u0315\3\2\2\2\u0313\u0311\3\2\2\2\u0313\u0314\3\2\2\2")\r
424 buf.write("\u0314\u0316\3\2\2\2\u0315\u0313\3\2\2\2\u0316\u0317\7")\r
425 buf.write("\26\2\2\u0317\177\3\2\2\2\u0318\u0319\7_\2\2\u0319\u031d")\r
426 buf.write("\7(\2\2\u031a\u031c\5\n\6\2\u031b\u031a\3\2\2\2\u031c")\r
427 buf.write("\u031f\3\2\2\2\u031d\u031b\3\2\2\2\u031d\u031e\3\2\2\2")\r
428 buf.write("\u031e\u0321\3\2\2\2\u031f\u031d\3\2\2\2\u0320\u0322\5")\r
429 buf.write("\u0086D\2\u0321\u0320\3\2\2\2\u0321\u0322\3\2\2\2\u0322")\r
430 buf.write("\u0324\3\2\2\2\u0323\u0325\5\\/\2\u0324\u0323\3\2\2\2")\r
431 buf.write("\u0324\u0325\3\2\2\2\u0325\u0326\3\2\2\2\u0326\u0327\7")\r
432 buf.write(")\2\2\u0327\u0081\3\2\2\2\u0328\u0329\7_\2\2\u0329\u032a")\r
433 buf.write("\7\31\2\2\u032a\u0334\5x=\2\u032b\u032c\7T\2\2\u032c\u032d")\r
434 buf.write("\5^\60\2\u032d\u032e\7\31\2\2\u032e\u032f\5x=\2\u032f")\r
435 buf.write("\u0334\3\2\2\2\u0330\u0331\7U\2\2\u0331\u0332\7\31\2\2")\r
436 buf.write("\u0332\u0334\5x=\2\u0333\u0328\3\2\2\2\u0333\u032b\3\2")\r
437 buf.write("\2\2\u0333\u0330\3\2\2\2\u0334\u0083\3\2\2\2\u0335\u0339")\r
438 buf.write("\7\3\2\2\u0336\u0338\5\n\6\2\u0337\u0336\3\2\2\2\u0338")\r
439 buf.write("\u033b\3\2\2\2\u0339\u0337\3\2\2\2\u0339\u033a\3\2\2\2")\r
440 buf.write("\u033a\u033d\3\2\2\2\u033b\u0339\3\2\2\2\u033c\u033e\5")\r
441 buf.write("\u0086D\2\u033d\u033c\3\2\2\2\u033d\u033e\3\2\2\2\u033e")\r
442 buf.write("\u033f\3\2\2\2\u033f\u0340\7\26\2\2\u0340\u0085\3\2\2")\r
443 buf.write("\2\u0341\u0343\5x=\2\u0342\u0341\3\2\2\2\u0343\u0344\3")\r
444 buf.write("\2\2\2\u0344\u0342\3\2\2\2\u0344\u0345\3\2\2\2\u0345\u0087")\r
445 buf.write("\3\2\2\2\u0346\u034b\7\4\2\2\u0347\u0348\5\\/\2\u0348")\r
446 buf.write("\u0349\7\4\2\2\u0349\u034b\3\2\2\2\u034a\u0346\3\2\2\2")\r
447 buf.write("\u034a\u0347\3\2\2\2\u034b\u0089\3\2\2\2\u034c\u034d\7")\r
448 buf.write("V\2\2\u034d\u034e\7(\2\2\u034e\u034f\5\\/\2\u034f\u0350")\r
449 buf.write("\7)\2\2\u0350\u0351\bF\1\2\u0351\u0354\5x=\2\u0352\u0353")\r
450 buf.write("\7W\2\2\u0353\u0355\5x=\2\u0354\u0352\3\2\2\2\u0354\u0355")\r
451 buf.write("\3\2\2\2\u0355\u035d\3\2\2\2\u0356\u0357\7X\2\2\u0357")\r
452 buf.write("\u0358\7(\2\2\u0358\u0359\5\\/\2\u0359\u035a\7)\2\2\u035a")\r
453 buf.write("\u035b\5x=\2\u035b\u035d\3\2\2\2\u035c\u034c\3\2\2\2\u035c")\r
454 buf.write("\u0356\3\2\2\2\u035d\u008b\3\2\2\2\u035e\u035f\7Y\2\2")\r
455 buf.write("\u035f\u0360\7(\2\2\u0360\u0361\5\\/\2\u0361\u0362\7)")\r
456 buf.write("\2\2\u0362\u0363\5x=\2\u0363\u0364\bG\1\2\u0364\u036f")\r
457 buf.write("\3\2\2\2\u0365\u0366\7Z\2\2\u0366\u0367\5x=\2\u0367\u0368")\r
458 buf.write("\7Y\2\2\u0368\u0369\7(\2\2\u0369\u036a\5\\/\2\u036a\u036b")\r
459 buf.write("\7)\2\2\u036b\u036c\7\4\2\2\u036c\u036d\bG\1\2\u036d\u036f")\r
460 buf.write("\3\2\2\2\u036e\u035e\3\2\2\2\u036e\u0365\3\2\2\2\u036f")\r
461 buf.write("\u008d\3\2\2\2\u0370\u0371\7[\2\2\u0371\u0372\7_\2\2\u0372")\r
462 buf.write("\u037e\7\4\2\2\u0373\u0374\7\\\2\2\u0374\u037e\7\4\2\2")\r
463 buf.write("\u0375\u0376\7]\2\2\u0376\u037e\7\4\2\2\u0377\u0378\7")\r
464 buf.write("^\2\2\u0378\u037e\7\4\2\2\u0379\u037a\7^\2\2\u037a\u037b")\r
465 buf.write("\5\\/\2\u037b\u037c\7\4\2\2\u037c\u037e\3\2\2\2\u037d")\r
466 buf.write("\u0370\3\2\2\2\u037d\u0373\3\2\2\2\u037d\u0375\3\2\2\2")\r
467 buf.write("\u037d\u0377\3\2\2\2\u037d\u0379\3\2\2\2\u037e\u008f\3")\r
468 buf.write("\2\2\2o\u0093\u0097\u009d\u00a6\u00a8\u00ab\u00b1\u00b6")\r
469 buf.write("\u00bd\u00bf\u00c3\u00cb\u00d0\u00d7\u00dd\u00f4\u00f9")\r
470 buf.write("\u00ff\u0108\u010f\u0117\u0119\u0120\u0126\u012a\u0130")\r
471 buf.write("\u0139\u013f\u0146\u014c\u0151\u0154\u0157\u015a\u015e")\r
472 buf.write("\u0164\u0169\u0170\u0172\u0184\u018a\u018d\u0192\u0197")\r
473 buf.write("\u019a\u019f\u01a4\u01aa\u01ac\u01b0\u01b5\u01b9\u01c0")\r
474 buf.write("\u01c5\u01c8\u01cc\u01cf\u01d6\u01db\u01ea\u01f0\u01f4")\r
475 buf.write("\u01fb\u0200\u0205\u0209\u0211\u0213\u021d\u021f\u0228")\r
476 buf.write("\u0239\u0258\u025a\u0262\u026d\u0276\u027c\u0280\u0285")\r
477 buf.write("\u0289\u0290\u029a\u02a7\u02ae\u02b6\u02be\u02c6\u02ce")\r
478 buf.write("\u02d6\u02de\u02e6\u02f4\u02f7\u02fe\u0309\u0313\u031d")\r
479 buf.write("\u0321\u0324\u0333\u0339\u033d\u0344\u034a\u0354\u035c")\r
480 buf.write("\u036e\u037d")\r
481 return buf.getvalue()\r
482\r
483\r
484class CParser ( Parser ):\r
485\r
486 grammarFileName = "C.g4"\r
487\r
488 atn = ATNDeserializer().deserialize(serializedATN())\r
489\r
490 decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]\r
491\r
492 sharedContextCache = PredictionContextCache()\r
493\r
494 literalNames = [ "<INVALID>", "'{'", "';'", "'typedef'", "','", "'='",\r
495 "'extern'", "'static'", "'auto'", "'register'", "'STATIC'",\r
496 "'void'", "'char'", "'short'", "'int'", "'long'", "'float'",\r
497 "'double'", "'signed'", "'unsigned'", "'}'", "'struct'",\r
498 "'union'", "':'", "'enum'", "'const'", "'volatile'",\r
499 "'IN'", "'OUT'", "'OPTIONAL'", "'CONST'", "'UNALIGNED'",\r
500 "'VOLATILE'", "'GLOBAL_REMOVE_IF_UNREFERENCED'", "'EFIAPI'",\r
501 "'EFI_BOOTSERVICE'", "'EFI_RUNTIMESERVICE'", "'PACKED'",\r
502 "'('", "')'", "'['", "']'", "'*'", "'...'", "'+'",\r
503 "'-'", "'/'", "'%'", "'++'", "'--'", "'sizeof'", "'.'",\r
504 "'->'", "'&'", "'~'", "'!'", "'*='", "'/='", "'%='",\r
505 "'+='", "'-='", "'<<='", "'>>='", "'&='", "'^='", "'|='",\r
506 "'?'", "'||'", "'&&'", "'|'", "'^'", "'=='", "'!='",\r
507 "'<'", "'>'", "'<='", "'>='", "'<<'", "'>>'", "'__asm__'",\r
508 "'_asm'", "'__asm'", "'case'", "'default'", "'if'",\r
509 "'else'", "'switch'", "'while'", "'do'", "'goto'",\r
510 "'continue'", "'break'", "'return'" ]\r
511\r
512 symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
513 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
514 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
515 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
516 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
517 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
518 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
519 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
520 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
521 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
522 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
523 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
524 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
525 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
526 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
527 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
528 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
529 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
530 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
531 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
532 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
533 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
534 "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",\r
535 "<INVALID>", "IDENTIFIER", "CHARACTER_LITERAL", "STRING_LITERAL",\r
536 "HEX_LITERAL", "DECIMAL_LITERAL", "OCTAL_LITERAL",\r
537 "FLOATING_POINT_LITERAL", "WS", "BS", "UnicodeVocabulary",\r
538 "COMMENT", "LINE_COMMENT", "LINE_COMMAND" ]\r
539\r
540 RULE_translation_unit = 0\r
541 RULE_external_declaration = 1\r
542 RULE_function_definition = 2\r
543 RULE_declaration_specifiers = 3\r
544 RULE_declaration = 4\r
545 RULE_init_declarator_list = 5\r
546 RULE_init_declarator = 6\r
547 RULE_storage_class_specifier = 7\r
548 RULE_type_specifier = 8\r
549 RULE_type_id = 9\r
550 RULE_struct_or_union_specifier = 10\r
551 RULE_struct_or_union = 11\r
552 RULE_struct_declaration_list = 12\r
553 RULE_struct_declaration = 13\r
554 RULE_specifier_qualifier_list = 14\r
555 RULE_struct_declarator_list = 15\r
556 RULE_struct_declarator = 16\r
557 RULE_enum_specifier = 17\r
558 RULE_enumerator_list = 18\r
559 RULE_enumerator = 19\r
560 RULE_type_qualifier = 20\r
561 RULE_declarator = 21\r
562 RULE_direct_declarator = 22\r
563 RULE_declarator_suffix = 23\r
564 RULE_pointer = 24\r
565 RULE_parameter_type_list = 25\r
566 RULE_parameter_list = 26\r
567 RULE_parameter_declaration = 27\r
568 RULE_identifier_list = 28\r
569 RULE_type_name = 29\r
570 RULE_abstract_declarator = 30\r
571 RULE_direct_abstract_declarator = 31\r
572 RULE_abstract_declarator_suffix = 32\r
573 RULE_initializer = 33\r
574 RULE_initializer_list = 34\r
575 RULE_argument_expression_list = 35\r
576 RULE_additive_expression = 36\r
577 RULE_multiplicative_expression = 37\r
578 RULE_cast_expression = 38\r
579 RULE_unary_expression = 39\r
580 RULE_postfix_expression = 40\r
581 RULE_macro_parameter_list = 41\r
582 RULE_unary_operator = 42\r
583 RULE_primary_expression = 43\r
584 RULE_constant = 44\r
585 RULE_expression = 45\r
586 RULE_constant_expression = 46\r
587 RULE_assignment_expression = 47\r
588 RULE_lvalue = 48\r
589 RULE_assignment_operator = 49\r
590 RULE_conditional_expression = 50\r
591 RULE_logical_or_expression = 51\r
592 RULE_logical_and_expression = 52\r
593 RULE_inclusive_or_expression = 53\r
594 RULE_exclusive_or_expression = 54\r
595 RULE_and_expression = 55\r
596 RULE_equality_expression = 56\r
597 RULE_relational_expression = 57\r
598 RULE_shift_expression = 58\r
599 RULE_statement = 59\r
600 RULE_asm2_statement = 60\r
601 RULE_asm1_statement = 61\r
602 RULE_asm_statement = 62\r
603 RULE_macro_statement = 63\r
604 RULE_labeled_statement = 64\r
605 RULE_compound_statement = 65\r
606 RULE_statement_list = 66\r
607 RULE_expression_statement = 67\r
608 RULE_selection_statement = 68\r
609 RULE_iteration_statement = 69\r
610 RULE_jump_statement = 70\r
611\r
612 ruleNames = [ "translation_unit", "external_declaration", "function_definition",\r
613 "declaration_specifiers", "declaration", "init_declarator_list",\r
614 "init_declarator", "storage_class_specifier", "type_specifier",\r
615 "type_id", "struct_or_union_specifier", "struct_or_union",\r
616 "struct_declaration_list", "struct_declaration", "specifier_qualifier_list",\r
617 "struct_declarator_list", "struct_declarator", "enum_specifier",\r
618 "enumerator_list", "enumerator", "type_qualifier", "declarator",\r
619 "direct_declarator", "declarator_suffix", "pointer",\r
620 "parameter_type_list", "parameter_list", "parameter_declaration",\r
621 "identifier_list", "type_name", "abstract_declarator",\r
622 "direct_abstract_declarator", "abstract_declarator_suffix",\r
623 "initializer", "initializer_list", "argument_expression_list",\r
624 "additive_expression", "multiplicative_expression", "cast_expression",\r
625 "unary_expression", "postfix_expression", "macro_parameter_list",\r
626 "unary_operator", "primary_expression", "constant", "expression",\r
627 "constant_expression", "assignment_expression", "lvalue",\r
628 "assignment_operator", "conditional_expression", "logical_or_expression",\r
629 "logical_and_expression", "inclusive_or_expression",\r
630 "exclusive_or_expression", "and_expression", "equality_expression",\r
631 "relational_expression", "shift_expression", "statement",\r
632 "asm2_statement", "asm1_statement", "asm_statement",\r
633 "macro_statement", "labeled_statement", "compound_statement",\r
634 "statement_list", "expression_statement", "selection_statement",\r
635 "iteration_statement", "jump_statement" ]\r
636\r
637 EOF = Token.EOF\r
638 T__0=1\r
639 T__1=2\r
640 T__2=3\r
641 T__3=4\r
642 T__4=5\r
643 T__5=6\r
644 T__6=7\r
645 T__7=8\r
646 T__8=9\r
647 T__9=10\r
648 T__10=11\r
649 T__11=12\r
650 T__12=13\r
651 T__13=14\r
652 T__14=15\r
653 T__15=16\r
654 T__16=17\r
655 T__17=18\r
656 T__18=19\r
657 T__19=20\r
658 T__20=21\r
659 T__21=22\r
660 T__22=23\r
661 T__23=24\r
662 T__24=25\r
663 T__25=26\r
664 T__26=27\r
665 T__27=28\r
666 T__28=29\r
667 T__29=30\r
668 T__30=31\r
669 T__31=32\r
670 T__32=33\r
671 T__33=34\r
672 T__34=35\r
673 T__35=36\r
674 T__36=37\r
675 T__37=38\r
676 T__38=39\r
677 T__39=40\r
678 T__40=41\r
679 T__41=42\r
680 T__42=43\r
681 T__43=44\r
682 T__44=45\r
683 T__45=46\r
684 T__46=47\r
685 T__47=48\r
686 T__48=49\r
687 T__49=50\r
688 T__50=51\r
689 T__51=52\r
690 T__52=53\r
691 T__53=54\r
692 T__54=55\r
693 T__55=56\r
694 T__56=57\r
695 T__57=58\r
696 T__58=59\r
697 T__59=60\r
698 T__60=61\r
699 T__61=62\r
700 T__62=63\r
701 T__63=64\r
702 T__64=65\r
703 T__65=66\r
704 T__66=67\r
705 T__67=68\r
706 T__68=69\r
707 T__69=70\r
708 T__70=71\r
709 T__71=72\r
710 T__72=73\r
711 T__73=74\r
712 T__74=75\r
713 T__75=76\r
714 T__76=77\r
715 T__77=78\r
716 T__78=79\r
717 T__79=80\r
718 T__80=81\r
719 T__81=82\r
720 T__82=83\r
721 T__83=84\r
722 T__84=85\r
723 T__85=86\r
724 T__86=87\r
725 T__87=88\r
726 T__88=89\r
727 T__89=90\r
728 T__90=91\r
729 T__91=92\r
730 IDENTIFIER=93\r
731 CHARACTER_LITERAL=94\r
732 STRING_LITERAL=95\r
733 HEX_LITERAL=96\r
734 DECIMAL_LITERAL=97\r
735 OCTAL_LITERAL=98\r
736 FLOATING_POINT_LITERAL=99\r
737 WS=100\r
738 BS=101\r
739 UnicodeVocabulary=102\r
740 COMMENT=103\r
741 LINE_COMMENT=104\r
742 LINE_COMMAND=105\r
743\r
744 # @param input Type: TokenStream\r
745 # @param output= sys.stdout Type: TextIO\r
746 def __init__(self,input,output= sys.stdout):\r
747 super().__init__(input, output)\r
748 self.checkVersion("4.7.1")\r
749 self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)\r
750 self._predicates = None\r
751\r
752\r
753\r
754\r
755 def printTokenInfo(self,line,offset,tokenText):\r
756 print(str(line)+ ',' + str(offset) + ':' + str(tokenText))\r
757\r
758 def StorePredicateExpression(self,StartLine,StartOffset,EndLine,EndOffset,Text):\r
759 PredExp = CodeFragment.PredicateExpression(Text, (StartLine, StartOffset), (EndLine, EndOffset))\r
760 FileProfile.PredicateExpressionList.append(PredExp)\r
761\r
762 def StoreEnumerationDefinition(self,StartLine,StartOffset,EndLine,EndOffset,Text):\r
763 EnumDef = CodeFragment.EnumerationDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset))\r
764 FileProfile.EnumerationDefinitionList.append(EnumDef)\r
765\r
766 def StoreStructUnionDefinition(self,StartLine,StartOffset,EndLine,EndOffset,Text):\r
767 SUDef = CodeFragment.StructUnionDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset))\r
768 FileProfile.StructUnionDefinitionList.append(SUDef)\r
769\r
770 def StoreTypedefDefinition(self,StartLine,StartOffset,EndLine,EndOffset,FromText,ToText):\r
771 Tdef = CodeFragment.TypedefDefinition(FromText, ToText, (StartLine, StartOffset), (EndLine, EndOffset))\r
772 FileProfile.TypedefDefinitionList.append(Tdef)\r
773\r
774 def StoreFunctionDefinition(self,StartLine,StartOffset,EndLine,EndOffset,ModifierText,DeclText,LeftBraceLine,LeftBraceOffset,DeclLine,DeclOffset):\r
775 FuncDef = CodeFragment.FunctionDefinition(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset), (LeftBraceLine, LeftBraceOffset), (DeclLine, DeclOffset))\r
776 FileProfile.FunctionDefinitionList.append(FuncDef)\r
777\r
778 def StoreVariableDeclaration(self,StartLine,StartOffset,EndLine,EndOffset,ModifierText,DeclText):\r
779 VarDecl = CodeFragment.VariableDeclaration(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset))\r
780 FileProfile.VariableDeclarationList.append(VarDecl)\r
781\r
782 def StoreFunctionCalling(self,StartLine,StartOffset,EndLine,EndOffset,FuncName,ParamList):\r
783 FuncCall = CodeFragment.FunctionCalling(FuncName, ParamList, (StartLine, StartOffset), (EndLine, EndOffset))\r
784 FileProfile.FunctionCallingList.append(FuncCall)\r
785\r
786\r
787\r
788 class Translation_unitContext(ParserRuleContext):\r
789\r
790 # @param parent=None Type: ParserRuleContext\r
791 # @param invokingState=-1 Type: int\r
792 def __init__(self,parser,parent=None,invokingState=-1):\r
793 super().__init__(parent, invokingState)\r
794 self.parser = parser\r
795\r
796 # @param i=None Type: int\r
797 def external_declaration(self,i=None):\r
798 if i is None:\r
799 return self.getTypedRuleContexts(CParser.External_declarationContext)\r
800 else:\r
801 return self.getTypedRuleContext(CParser.External_declarationContext,i)\r
802\r
803\r
804 def getRuleIndex(self):\r
805 return CParser.RULE_translation_unit\r
806\r
807 # @param listener Type: ParseTreeListener\r
808 def enterRule(self,listener):\r
809 if hasattr( listener, "enterTranslation_unit" ):\r
810 listener.enterTranslation_unit(self)\r
811\r
812 # @param listener Type: ParseTreeListener\r
813 def exitRule(self,listener):\r
814 if hasattr( listener, "exitTranslation_unit" ):\r
815 listener.exitTranslation_unit(self)\r
816\r
817\r
818\r
819\r
820 def translation_unit(self):\r
821\r
822 localctx = CParser.Translation_unitContext(self, self._ctx, self.state)\r
823 self.enterRule(localctx, 0, self.RULE_translation_unit)\r
824 self._la = 0 # Token type\r
825 try:\r
826 self.enterOuterAlt(localctx, 1)\r
827 self.state = 145\r
828 self._errHandler.sync(self)\r
829 _la = self._input.LA(1)\r
830 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:\r
831 self.state = 142\r
832 self.external_declaration()\r
833 self.state = 147\r
834 self._errHandler.sync(self)\r
835 _la = self._input.LA(1)\r
836\r
837 except RecognitionException as re:\r
838 localctx.exception = re\r
839 self._errHandler.reportError(self, re)\r
840 self._errHandler.recover(self, re)\r
841 finally:\r
842 self.exitRule()\r
843 return localctx\r
844\r
845 class External_declarationContext(ParserRuleContext):\r
846\r
847 # @param parent=None Type: ParserRuleContext\r
848 # @param invokingState=-1 Type: int\r
849 def __init__(self,parser,parent=None,invokingState=-1):\r
850 super().__init__(parent, invokingState)\r
851 self.parser = parser\r
852\r
853 def declarator(self):\r
854 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
855\r
856\r
857 def declaration_specifiers(self):\r
858 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
859\r
860\r
861 # @param i=None Type: int\r
862 def declaration(self,i=None):\r
863 if i is None:\r
864 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
865 else:\r
866 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
867\r
868\r
869 def function_definition(self):\r
870 return self.getTypedRuleContext(CParser.Function_definitionContext,0)\r
871\r
872\r
873 def macro_statement(self):\r
874 return self.getTypedRuleContext(CParser.Macro_statementContext,0)\r
875\r
876\r
877 def getRuleIndex(self):\r
878 return CParser.RULE_external_declaration\r
879\r
880 # @param listener Type: ParseTreeListener\r
881 def enterRule(self,listener):\r
882 if hasattr( listener, "enterExternal_declaration" ):\r
883 listener.enterExternal_declaration(self)\r
884\r
885 # @param listener Type: ParseTreeListener\r
886 def exitRule(self,listener):\r
887 if hasattr( listener, "exitExternal_declaration" ):\r
888 listener.exitExternal_declaration(self)\r
889\r
890\r
891\r
892\r
893 def external_declaration(self):\r
894\r
895 localctx = CParser.External_declarationContext(self, self._ctx, self.state)\r
896 self.enterRule(localctx, 2, self.RULE_external_declaration)\r
897 self._la = 0 # Token type\r
898 try:\r
899 self.state = 166\r
900 self._errHandler.sync(self)\r
901 la_ = self._interp.adaptivePredict(self._input,4,self._ctx)\r
902 if la_ == 1:\r
903 self.enterOuterAlt(localctx, 1)\r
904 self.state = 149\r
905 self._errHandler.sync(self)\r
906 la_ = self._interp.adaptivePredict(self._input,1,self._ctx)\r
907 if la_ == 1:\r
908 self.state = 148\r
909 self.declaration_specifiers()\r
910\r
911\r
912 self.state = 151\r
913 self.declarator()\r
914 self.state = 155\r
915 self._errHandler.sync(self)\r
916 _la = self._input.LA(1)\r
917 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:\r
918 self.state = 152\r
919 self.declaration()\r
920 self.state = 157\r
921 self._errHandler.sync(self)\r
922 _la = self._input.LA(1)\r
923\r
924 self.state = 158\r
925 self.match(CParser.T__0)\r
926 pass\r
927\r
928 elif la_ == 2:\r
929 self.enterOuterAlt(localctx, 2)\r
930 self.state = 160\r
931 self.function_definition()\r
932 pass\r
933\r
934 elif la_ == 3:\r
935 self.enterOuterAlt(localctx, 3)\r
936 self.state = 161\r
937 self.declaration()\r
938 pass\r
939\r
940 elif la_ == 4:\r
941 self.enterOuterAlt(localctx, 4)\r
942 self.state = 162\r
943 self.macro_statement()\r
944 self.state = 164\r
945 self._errHandler.sync(self)\r
946 _la = self._input.LA(1)\r
947 if _la==CParser.T__1:\r
948 self.state = 163\r
949 self.match(CParser.T__1)\r
950\r
951\r
952 pass\r
953\r
954\r
955 except RecognitionException as re:\r
956 localctx.exception = re\r
957 self._errHandler.reportError(self, re)\r
958 self._errHandler.recover(self, re)\r
959 finally:\r
960 self.exitRule()\r
961 return localctx\r
962\r
963 class Function_definitionContext(ParserRuleContext):\r
964\r
965 # @param parent=None Type: ParserRuleContext\r
966 # @param invokingState=-1 Type: int\r
967 def __init__(self,parser,parent=None,invokingState=-1):\r
968 super().__init__(parent, invokingState)\r
969 self.parser = parser\r
970 self.ModifierText = ''\r
971 self.DeclText = ''\r
972 self.LBLine = 0\r
973 self.LBOffset = 0\r
974 self.DeclLine = 0\r
975 self.DeclOffset = 0\r
976 self.d = None # Declaration_specifiersContext\r
977 self._declaration_specifiers = None # Declaration_specifiersContext\r
978 self._declarator = None # DeclaratorContext\r
979 self.a = None # Compound_statementContext\r
980 self.b = None # Compound_statementContext\r
981\r
982 def declarator(self):\r
983 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
984\r
985\r
986 def compound_statement(self):\r
987 return self.getTypedRuleContext(CParser.Compound_statementContext,0)\r
988\r
989\r
990 def declaration_specifiers(self):\r
991 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
992\r
993\r
994 # @param i=None Type: int\r
995 def declaration(self,i=None):\r
996 if i is None:\r
997 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
998 else:\r
999 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
1000\r
1001\r
1002 def getRuleIndex(self):\r
1003 return CParser.RULE_function_definition\r
1004\r
1005 # @param listener Type: ParseTreeListener\r
1006 def enterRule(self,listener):\r
1007 if hasattr( listener, "enterFunction_definition" ):\r
1008 listener.enterFunction_definition(self)\r
1009\r
1010 # @param listener Type: ParseTreeListener\r
1011 def exitRule(self,listener):\r
1012 if hasattr( listener, "exitFunction_definition" ):\r
1013 listener.exitFunction_definition(self)\r
1014\r
1015\r
1016\r
1017\r
1018 def function_definition(self):\r
1019\r
1020 localctx = CParser.Function_definitionContext(self, self._ctx, self.state)\r
1021 self.enterRule(localctx, 4, self.RULE_function_definition)\r
1022\r
1023 ModifierText = '';\r
1024 DeclText = '';\r
1025 LBLine = 0;\r
1026 LBOffset = 0;\r
1027 DeclLine = 0;\r
1028 DeclOffset = 0;\r
1029\r
1030 self._la = 0 # Token type\r
1031 try:\r
1032 self.enterOuterAlt(localctx, 1)\r
1033 self.state = 169\r
1034 self._errHandler.sync(self)\r
1035 la_ = self._interp.adaptivePredict(self._input,5,self._ctx)\r
1036 if la_ == 1:\r
1037 self.state = 168\r
1038 localctx.d = localctx._declaration_specifiers = self.declaration_specifiers()\r
1039\r
1040\r
1041 self.state = 171\r
1042 localctx._declarator = self.declarator()\r
1043 self.state = 180\r
1044 self._errHandler.sync(self)\r
1045 token = self._input.LA(1)\r
1046 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]:\r
1047 self.state = 173\r
1048 self._errHandler.sync(self)\r
1049 _la = self._input.LA(1)\r
1050 while True:\r
1051 self.state = 172\r
1052 self.declaration()\r
1053 self.state = 175\r
1054 self._errHandler.sync(self)\r
1055 _la = self._input.LA(1)\r
1056 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):\r
1057 break\r
1058\r
1059 self.state = 177\r
1060 localctx.a = self.compound_statement()\r
1061 pass\r
1062 elif token in [CParser.T__0]:\r
1063 self.state = 179\r
1064 localctx.b = self.compound_statement()\r
1065 pass\r
1066 else:\r
1067 raise NoViableAltException(self)\r
1068\r
1069\r
1070 if localctx.d != None:\r
1071 ModifierText = (None if localctx._declaration_specifiers is None else self._input.getText((localctx._declaration_specifiers.start,localctx._declaration_specifiers.stop)))\r
1072 else:\r
1073 ModifierText = ''\r
1074 DeclText = (None if localctx._declarator is None else self._input.getText((localctx._declarator.start,localctx._declarator.stop)))\r
1075 DeclLine = (None if localctx._declarator is None else localctx._declarator.start).line\r
1076 DeclOffset = (None if localctx._declarator is None else localctx._declarator.start).column\r
1077 if localctx.a != None:\r
1078 LBLine = (None if localctx.a is None else localctx.a.start).line\r
1079 LBOffset = (None if localctx.a is None else localctx.a.start).column\r
1080 else:\r
1081 LBLine = (None if localctx.b is None else localctx.b.start).line\r
1082 LBOffset = (None if localctx.b is None else localctx.b.start).column\r
1083\r
1084 self._ctx.stop = self._input.LT(-1)\r
1085\r
1086 self.StoreFunctionDefinition(localctx.start.line, localctx.start.column, localctx.stop.line, localctx.stop.column, ModifierText, DeclText, LBLine, LBOffset, DeclLine, DeclOffset)\r
1087\r
1088 except RecognitionException as re:\r
1089 localctx.exception = re\r
1090 self._errHandler.reportError(self, re)\r
1091 self._errHandler.recover(self, re)\r
1092 finally:\r
1093 self.exitRule()\r
1094 return localctx\r
1095\r
1096 class Declaration_specifiersContext(ParserRuleContext):\r
1097\r
1098 # @param parent=None Type: ParserRuleContext\r
1099 # @param invokingState=-1 Type: int\r
1100 def __init__(self,parser,parent=None,invokingState=-1):\r
1101 super().__init__(parent, invokingState)\r
1102 self.parser = parser\r
1103\r
1104 # @param i=None Type: int\r
1105 def storage_class_specifier(self,i=None):\r
1106 if i is None:\r
1107 return self.getTypedRuleContexts(CParser.Storage_class_specifierContext)\r
1108 else:\r
1109 return self.getTypedRuleContext(CParser.Storage_class_specifierContext,i)\r
1110\r
1111\r
1112 # @param i=None Type: int\r
1113 def type_specifier(self,i=None):\r
1114 if i is None:\r
1115 return self.getTypedRuleContexts(CParser.Type_specifierContext)\r
1116 else:\r
1117 return self.getTypedRuleContext(CParser.Type_specifierContext,i)\r
1118\r
1119\r
1120 # @param i=None Type: int\r
1121 def type_qualifier(self,i=None):\r
1122 if i is None:\r
1123 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
1124 else:\r
1125 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
1126\r
1127\r
1128 def getRuleIndex(self):\r
1129 return CParser.RULE_declaration_specifiers\r
1130\r
1131 # @param listener Type: ParseTreeListener\r
1132 def enterRule(self,listener):\r
1133 if hasattr( listener, "enterDeclaration_specifiers" ):\r
1134 listener.enterDeclaration_specifiers(self)\r
1135\r
1136 # @param listener Type: ParseTreeListener\r
1137 def exitRule(self,listener):\r
1138 if hasattr( listener, "exitDeclaration_specifiers" ):\r
1139 listener.exitDeclaration_specifiers(self)\r
1140\r
1141\r
1142\r
1143\r
1144 def declaration_specifiers(self):\r
1145\r
1146 localctx = CParser.Declaration_specifiersContext(self, self._ctx, self.state)\r
1147 self.enterRule(localctx, 6, self.RULE_declaration_specifiers)\r
1148 try:\r
1149 self.enterOuterAlt(localctx, 1)\r
1150 self.state = 187\r
1151 self._errHandler.sync(self)\r
1152 _alt = 1\r
1153 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
1154 if _alt == 1:\r
1155 self.state = 187\r
1156 self._errHandler.sync(self)\r
1157 token = self._input.LA(1)\r
1158 if token in [CParser.T__5, CParser.T__6, CParser.T__7, CParser.T__8, CParser.T__9]:\r
1159 self.state = 184\r
1160 self.storage_class_specifier()\r
1161 pass\r
1162 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]:\r
1163 self.state = 185\r
1164 self.type_specifier()\r
1165 pass\r
1166 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]:\r
1167 self.state = 186\r
1168 self.type_qualifier()\r
1169 pass\r
1170 else:\r
1171 raise NoViableAltException(self)\r
1172\r
1173\r
1174 else:\r
1175 raise NoViableAltException(self)\r
1176 self.state = 189\r
1177 self._errHandler.sync(self)\r
1178 _alt = self._interp.adaptivePredict(self._input,9,self._ctx)\r
1179\r
1180 except RecognitionException as re:\r
1181 localctx.exception = re\r
1182 self._errHandler.reportError(self, re)\r
1183 self._errHandler.recover(self, re)\r
1184 finally:\r
1185 self.exitRule()\r
1186 return localctx\r
1187\r
1188 class DeclarationContext(ParserRuleContext):\r
1189\r
1190 # @param parent=None Type: ParserRuleContext\r
1191 # @param invokingState=-1 Type: int\r
1192 def __init__(self,parser,parent=None,invokingState=-1):\r
1193 super().__init__(parent, invokingState)\r
1194 self.parser = parser\r
1195 self.a = None # Token\r
1196 self.b = None # Declaration_specifiersContext\r
1197 self.c = None # Init_declarator_listContext\r
1198 self.d = None # Token\r
1199 self.s = None # Declaration_specifiersContext\r
1200 self.t = None # Init_declarator_listContext\r
1201 self.e = None # Token\r
1202\r
1203 def init_declarator_list(self):\r
1204 return self.getTypedRuleContext(CParser.Init_declarator_listContext,0)\r
1205\r
1206\r
1207 def declaration_specifiers(self):\r
1208 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
1209\r
1210\r
1211 def getRuleIndex(self):\r
1212 return CParser.RULE_declaration\r
1213\r
1214 # @param listener Type: ParseTreeListener\r
1215 def enterRule(self,listener):\r
1216 if hasattr( listener, "enterDeclaration" ):\r
1217 listener.enterDeclaration(self)\r
1218\r
1219 # @param listener Type: ParseTreeListener\r
1220 def exitRule(self,listener):\r
1221 if hasattr( listener, "exitDeclaration" ):\r
1222 listener.exitDeclaration(self)\r
1223\r
1224\r
1225\r
1226\r
1227 def declaration(self):\r
1228\r
1229 localctx = CParser.DeclarationContext(self, self._ctx, self.state)\r
1230 self.enterRule(localctx, 8, self.RULE_declaration)\r
1231 self._la = 0 # Token type\r
1232 try:\r
1233 self.state = 206\r
1234 self._errHandler.sync(self)\r
1235 token = self._input.LA(1)\r
1236 if token in [CParser.T__2]:\r
1237 self.enterOuterAlt(localctx, 1)\r
1238 self.state = 191\r
1239 localctx.a = self.match(CParser.T__2)\r
1240 self.state = 193\r
1241 self._errHandler.sync(self)\r
1242 la_ = self._interp.adaptivePredict(self._input,10,self._ctx)\r
1243 if la_ == 1:\r
1244 self.state = 192\r
1245 localctx.b = self.declaration_specifiers()\r
1246\r
1247\r
1248 self.state = 195\r
1249 localctx.c = self.init_declarator_list()\r
1250 self.state = 196\r
1251 localctx.d = self.match(CParser.T__1)\r
1252\r
1253 if localctx.b is not None:\r
1254 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))))\r
1255 else:\r
1256 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))))\r
1257\r
1258 pass\r
1259 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]:\r
1260 self.enterOuterAlt(localctx, 2)\r
1261 self.state = 199\r
1262 localctx.s = self.declaration_specifiers()\r
1263 self.state = 201\r
1264 self._errHandler.sync(self)\r
1265 _la = self._input.LA(1)\r
1266 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):\r
1267 self.state = 200\r
1268 localctx.t = self.init_declarator_list()\r
1269\r
1270\r
1271 self.state = 203\r
1272 localctx.e = self.match(CParser.T__1)\r
1273\r
1274 if localctx.t is not None:\r
1275 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))))\r
1276\r
1277 pass\r
1278 else:\r
1279 raise NoViableAltException(self)\r
1280\r
1281 except RecognitionException as re:\r
1282 localctx.exception = re\r
1283 self._errHandler.reportError(self, re)\r
1284 self._errHandler.recover(self, re)\r
1285 finally:\r
1286 self.exitRule()\r
1287 return localctx\r
1288\r
1289 class Init_declarator_listContext(ParserRuleContext):\r
1290\r
1291 # @param parent=None Type: ParserRuleContext\r
1292 # @param invokingState=-1 Type: int\r
1293 def __init__(self,parser,parent=None,invokingState=-1):\r
1294 super().__init__(parent, invokingState)\r
1295 self.parser = parser\r
1296\r
1297 # @param i=None Type: int\r
1298 def init_declarator(self,i=None):\r
1299 if i is None:\r
1300 return self.getTypedRuleContexts(CParser.Init_declaratorContext)\r
1301 else:\r
1302 return self.getTypedRuleContext(CParser.Init_declaratorContext,i)\r
1303\r
1304\r
1305 def getRuleIndex(self):\r
1306 return CParser.RULE_init_declarator_list\r
1307\r
1308 # @param listener Type: ParseTreeListener\r
1309 def enterRule(self,listener):\r
1310 if hasattr( listener, "enterInit_declarator_list" ):\r
1311 listener.enterInit_declarator_list(self)\r
1312\r
1313 # @param listener Type: ParseTreeListener\r
1314 def exitRule(self,listener):\r
1315 if hasattr( listener, "exitInit_declarator_list" ):\r
1316 listener.exitInit_declarator_list(self)\r
1317\r
1318\r
1319\r
1320\r
1321 def init_declarator_list(self):\r
1322\r
1323 localctx = CParser.Init_declarator_listContext(self, self._ctx, self.state)\r
1324 self.enterRule(localctx, 10, self.RULE_init_declarator_list)\r
1325 self._la = 0 # Token type\r
1326 try:\r
1327 self.enterOuterAlt(localctx, 1)\r
1328 self.state = 208\r
1329 self.init_declarator()\r
1330 self.state = 213\r
1331 self._errHandler.sync(self)\r
1332 _la = self._input.LA(1)\r
1333 while _la==CParser.T__3:\r
1334 self.state = 209\r
1335 self.match(CParser.T__3)\r
1336 self.state = 210\r
1337 self.init_declarator()\r
1338 self.state = 215\r
1339 self._errHandler.sync(self)\r
1340 _la = self._input.LA(1)\r
1341\r
1342 except RecognitionException as re:\r
1343 localctx.exception = re\r
1344 self._errHandler.reportError(self, re)\r
1345 self._errHandler.recover(self, re)\r
1346 finally:\r
1347 self.exitRule()\r
1348 return localctx\r
1349\r
1350 class Init_declaratorContext(ParserRuleContext):\r
1351\r
1352 # @param parent=None Type: ParserRuleContext\r
1353 # @param invokingState=-1 Type: int\r
1354 def __init__(self,parser,parent=None,invokingState=-1):\r
1355 super().__init__(parent, invokingState)\r
1356 self.parser = parser\r
1357\r
1358 def declarator(self):\r
1359 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
1360\r
1361\r
1362 def initializer(self):\r
1363 return self.getTypedRuleContext(CParser.InitializerContext,0)\r
1364\r
1365\r
1366 def getRuleIndex(self):\r
1367 return CParser.RULE_init_declarator\r
1368\r
1369 # @param listener Type: ParseTreeListener\r
1370 def enterRule(self,listener):\r
1371 if hasattr( listener, "enterInit_declarator" ):\r
1372 listener.enterInit_declarator(self)\r
1373\r
1374 # @param listener Type: ParseTreeListener\r
1375 def exitRule(self,listener):\r
1376 if hasattr( listener, "exitInit_declarator" ):\r
1377 listener.exitInit_declarator(self)\r
1378\r
1379\r
1380\r
1381\r
1382 def init_declarator(self):\r
1383\r
1384 localctx = CParser.Init_declaratorContext(self, self._ctx, self.state)\r
1385 self.enterRule(localctx, 12, self.RULE_init_declarator)\r
1386 self._la = 0 # Token type\r
1387 try:\r
1388 self.enterOuterAlt(localctx, 1)\r
1389 self.state = 216\r
1390 self.declarator()\r
1391 self.state = 219\r
1392 self._errHandler.sync(self)\r
1393 _la = self._input.LA(1)\r
1394 if _la==CParser.T__4:\r
1395 self.state = 217\r
1396 self.match(CParser.T__4)\r
1397 self.state = 218\r
1398 self.initializer()\r
1399\r
1400\r
1401 except RecognitionException as re:\r
1402 localctx.exception = re\r
1403 self._errHandler.reportError(self, re)\r
1404 self._errHandler.recover(self, re)\r
1405 finally:\r
1406 self.exitRule()\r
1407 return localctx\r
1408\r
1409 class Storage_class_specifierContext(ParserRuleContext):\r
1410\r
1411 # @param parent=None Type: ParserRuleContext\r
1412 # @param invokingState=-1 Type: int\r
1413 def __init__(self,parser,parent=None,invokingState=-1):\r
1414 super().__init__(parent, invokingState)\r
1415 self.parser = parser\r
1416\r
1417\r
1418 def getRuleIndex(self):\r
1419 return CParser.RULE_storage_class_specifier\r
1420\r
1421 # @param listener Type: ParseTreeListener\r
1422 def enterRule(self,listener):\r
1423 if hasattr( listener, "enterStorage_class_specifier" ):\r
1424 listener.enterStorage_class_specifier(self)\r
1425\r
1426 # @param listener Type: ParseTreeListener\r
1427 def exitRule(self,listener):\r
1428 if hasattr( listener, "exitStorage_class_specifier" ):\r
1429 listener.exitStorage_class_specifier(self)\r
1430\r
1431\r
1432\r
1433\r
1434 def storage_class_specifier(self):\r
1435\r
1436 localctx = CParser.Storage_class_specifierContext(self, self._ctx, self.state)\r
1437 self.enterRule(localctx, 14, self.RULE_storage_class_specifier)\r
1438 self._la = 0 # Token type\r
1439 try:\r
1440 self.enterOuterAlt(localctx, 1)\r
1441 self.state = 221\r
1442 _la = self._input.LA(1)\r
1443 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)):\r
1444 self._errHandler.recoverInline(self)\r
1445 else:\r
1446 self._errHandler.reportMatch(self)\r
1447 self.consume()\r
1448 except RecognitionException as re:\r
1449 localctx.exception = re\r
1450 self._errHandler.reportError(self, re)\r
1451 self._errHandler.recover(self, re)\r
1452 finally:\r
1453 self.exitRule()\r
1454 return localctx\r
1455\r
1456 class Type_specifierContext(ParserRuleContext):\r
1457\r
1458 # @param parent=None Type: ParserRuleContext\r
1459 # @param invokingState=-1 Type: int\r
1460 def __init__(self,parser,parent=None,invokingState=-1):\r
1461 super().__init__(parent, invokingState)\r
1462 self.parser = parser\r
1463 self.s = None # Struct_or_union_specifierContext\r
1464 self.e = None # Enum_specifierContext\r
1465\r
1466 def struct_or_union_specifier(self):\r
1467 return self.getTypedRuleContext(CParser.Struct_or_union_specifierContext,0)\r
1468\r
1469\r
1470 def enum_specifier(self):\r
1471 return self.getTypedRuleContext(CParser.Enum_specifierContext,0)\r
1472\r
1473\r
1474 def IDENTIFIER(self):\r
1475 return self.getToken(CParser.IDENTIFIER, 0)\r
1476\r
1477 def declarator(self):\r
1478 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
1479\r
1480\r
1481 # @param i=None Type: int\r
1482 def type_qualifier(self,i=None):\r
1483 if i is None:\r
1484 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
1485 else:\r
1486 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
1487\r
1488\r
1489 def type_id(self):\r
1490 return self.getTypedRuleContext(CParser.Type_idContext,0)\r
1491\r
1492\r
1493 def getRuleIndex(self):\r
1494 return CParser.RULE_type_specifier\r
1495\r
1496 # @param listener Type: ParseTreeListener\r
1497 def enterRule(self,listener):\r
1498 if hasattr( listener, "enterType_specifier" ):\r
1499 listener.enterType_specifier(self)\r
1500\r
1501 # @param listener Type: ParseTreeListener\r
1502 def exitRule(self,listener):\r
1503 if hasattr( listener, "exitType_specifier" ):\r
1504 listener.exitType_specifier(self)\r
1505\r
1506\r
1507\r
1508\r
1509 def type_specifier(self):\r
1510\r
1511 localctx = CParser.Type_specifierContext(self, self._ctx, self.state)\r
1512 self.enterRule(localctx, 16, self.RULE_type_specifier)\r
1513 try:\r
1514 self.state = 247\r
1515 self._errHandler.sync(self)\r
1516 la_ = self._interp.adaptivePredict(self._input,16,self._ctx)\r
1517 if la_ == 1:\r
1518 self.enterOuterAlt(localctx, 1)\r
1519 self.state = 223\r
1520 self.match(CParser.T__10)\r
1521 pass\r
1522\r
1523 elif la_ == 2:\r
1524 self.enterOuterAlt(localctx, 2)\r
1525 self.state = 224\r
1526 self.match(CParser.T__11)\r
1527 pass\r
1528\r
1529 elif la_ == 3:\r
1530 self.enterOuterAlt(localctx, 3)\r
1531 self.state = 225\r
1532 self.match(CParser.T__12)\r
1533 pass\r
1534\r
1535 elif la_ == 4:\r
1536 self.enterOuterAlt(localctx, 4)\r
1537 self.state = 226\r
1538 self.match(CParser.T__13)\r
1539 pass\r
1540\r
1541 elif la_ == 5:\r
1542 self.enterOuterAlt(localctx, 5)\r
1543 self.state = 227\r
1544 self.match(CParser.T__14)\r
1545 pass\r
1546\r
1547 elif la_ == 6:\r
1548 self.enterOuterAlt(localctx, 6)\r
1549 self.state = 228\r
1550 self.match(CParser.T__15)\r
1551 pass\r
1552\r
1553 elif la_ == 7:\r
1554 self.enterOuterAlt(localctx, 7)\r
1555 self.state = 229\r
1556 self.match(CParser.T__16)\r
1557 pass\r
1558\r
1559 elif la_ == 8:\r
1560 self.enterOuterAlt(localctx, 8)\r
1561 self.state = 230\r
1562 self.match(CParser.T__17)\r
1563 pass\r
1564\r
1565 elif la_ == 9:\r
1566 self.enterOuterAlt(localctx, 9)\r
1567 self.state = 231\r
1568 self.match(CParser.T__18)\r
1569 pass\r
1570\r
1571 elif la_ == 10:\r
1572 self.enterOuterAlt(localctx, 10)\r
1573 self.state = 232\r
1574 localctx.s = self.struct_or_union_specifier()\r
1575\r
1576 if localctx.s.stop is not None:\r
1577 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))))\r
1578\r
1579 pass\r
1580\r
1581 elif la_ == 11:\r
1582 self.enterOuterAlt(localctx, 11)\r
1583 self.state = 235\r
1584 localctx.e = self.enum_specifier()\r
1585\r
1586 if localctx.e.stop is not None:\r
1587 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))))\r
1588\r
1589 pass\r
1590\r
1591 elif la_ == 12:\r
1592 self.enterOuterAlt(localctx, 12)\r
1593 self.state = 238\r
1594 self.match(CParser.IDENTIFIER)\r
1595 self.state = 242\r
1596 self._errHandler.sync(self)\r
1597 _alt = self._interp.adaptivePredict(self._input,15,self._ctx)\r
1598 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
1599 if _alt==1:\r
1600 self.state = 239\r
1601 self.type_qualifier()\r
1602 self.state = 244\r
1603 self._errHandler.sync(self)\r
1604 _alt = self._interp.adaptivePredict(self._input,15,self._ctx)\r
1605\r
1606 self.state = 245\r
1607 self.declarator()\r
1608 pass\r
1609\r
1610 elif la_ == 13:\r
1611 self.enterOuterAlt(localctx, 13)\r
1612 self.state = 246\r
1613 self.type_id()\r
1614 pass\r
1615\r
1616\r
1617 except RecognitionException as re:\r
1618 localctx.exception = re\r
1619 self._errHandler.reportError(self, re)\r
1620 self._errHandler.recover(self, re)\r
1621 finally:\r
1622 self.exitRule()\r
1623 return localctx\r
1624\r
1625 class Type_idContext(ParserRuleContext):\r
1626\r
1627 # @param parent=None Type: ParserRuleContext\r
1628 # @param invokingState=-1 Type: int\r
1629 def __init__(self,parser,parent=None,invokingState=-1):\r
1630 super().__init__(parent, invokingState)\r
1631 self.parser = parser\r
1632\r
1633 def IDENTIFIER(self):\r
1634 return self.getToken(CParser.IDENTIFIER, 0)\r
1635\r
1636 def getRuleIndex(self):\r
1637 return CParser.RULE_type_id\r
1638\r
1639 # @param listener Type: ParseTreeListener\r
1640 def enterRule(self,listener):\r
1641 if hasattr( listener, "enterType_id" ):\r
1642 listener.enterType_id(self)\r
1643\r
1644 # @param listener Type: ParseTreeListener\r
1645 def exitRule(self,listener):\r
1646 if hasattr( listener, "exitType_id" ):\r
1647 listener.exitType_id(self)\r
1648\r
1649\r
1650\r
1651\r
1652 def type_id(self):\r
1653\r
1654 localctx = CParser.Type_idContext(self, self._ctx, self.state)\r
1655 self.enterRule(localctx, 18, self.RULE_type_id)\r
1656 try:\r
1657 self.enterOuterAlt(localctx, 1)\r
1658 self.state = 249\r
1659 self.match(CParser.IDENTIFIER)\r
1660 except RecognitionException as re:\r
1661 localctx.exception = re\r
1662 self._errHandler.reportError(self, re)\r
1663 self._errHandler.recover(self, re)\r
1664 finally:\r
1665 self.exitRule()\r
1666 return localctx\r
1667\r
1668 class Struct_or_union_specifierContext(ParserRuleContext):\r
1669\r
1670 # @param parent=None Type: ParserRuleContext\r
1671 # @param invokingState=-1 Type: int\r
1672 def __init__(self,parser,parent=None,invokingState=-1):\r
1673 super().__init__(parent, invokingState)\r
1674 self.parser = parser\r
1675\r
1676 def struct_or_union(self):\r
1677 return self.getTypedRuleContext(CParser.Struct_or_unionContext,0)\r
1678\r
1679\r
1680 def struct_declaration_list(self):\r
1681 return self.getTypedRuleContext(CParser.Struct_declaration_listContext,0)\r
1682\r
1683\r
1684 def IDENTIFIER(self):\r
1685 return self.getToken(CParser.IDENTIFIER, 0)\r
1686\r
1687 def getRuleIndex(self):\r
1688 return CParser.RULE_struct_or_union_specifier\r
1689\r
1690 # @param listener Type: ParseTreeListener\r
1691 def enterRule(self,listener):\r
1692 if hasattr( listener, "enterStruct_or_union_specifier" ):\r
1693 listener.enterStruct_or_union_specifier(self)\r
1694\r
1695 # @param listener Type: ParseTreeListener\r
1696 def exitRule(self,listener):\r
1697 if hasattr( listener, "exitStruct_or_union_specifier" ):\r
1698 listener.exitStruct_or_union_specifier(self)\r
1699\r
1700\r
1701\r
1702\r
1703 def struct_or_union_specifier(self):\r
1704\r
1705 localctx = CParser.Struct_or_union_specifierContext(self, self._ctx, self.state)\r
1706 self.enterRule(localctx, 20, self.RULE_struct_or_union_specifier)\r
1707 self._la = 0 # Token type\r
1708 try:\r
1709 self.state = 262\r
1710 self._errHandler.sync(self)\r
1711 la_ = self._interp.adaptivePredict(self._input,18,self._ctx)\r
1712 if la_ == 1:\r
1713 self.enterOuterAlt(localctx, 1)\r
1714 self.state = 251\r
1715 self.struct_or_union()\r
1716 self.state = 253\r
1717 self._errHandler.sync(self)\r
1718 _la = self._input.LA(1)\r
1719 if _la==CParser.IDENTIFIER:\r
1720 self.state = 252\r
1721 self.match(CParser.IDENTIFIER)\r
1722\r
1723\r
1724 self.state = 255\r
1725 self.match(CParser.T__0)\r
1726 self.state = 256\r
1727 self.struct_declaration_list()\r
1728 self.state = 257\r
1729 self.match(CParser.T__19)\r
1730 pass\r
1731\r
1732 elif la_ == 2:\r
1733 self.enterOuterAlt(localctx, 2)\r
1734 self.state = 259\r
1735 self.struct_or_union()\r
1736 self.state = 260\r
1737 self.match(CParser.IDENTIFIER)\r
1738 pass\r
1739\r
1740\r
1741 except RecognitionException as re:\r
1742 localctx.exception = re\r
1743 self._errHandler.reportError(self, re)\r
1744 self._errHandler.recover(self, re)\r
1745 finally:\r
1746 self.exitRule()\r
1747 return localctx\r
1748\r
1749 class Struct_or_unionContext(ParserRuleContext):\r
1750\r
1751 # @param parent=None Type: ParserRuleContext\r
1752 # @param invokingState=-1 Type: int\r
1753 def __init__(self,parser,parent=None,invokingState=-1):\r
1754 super().__init__(parent, invokingState)\r
1755 self.parser = parser\r
1756\r
1757\r
1758 def getRuleIndex(self):\r
1759 return CParser.RULE_struct_or_union\r
1760\r
1761 # @param listener Type: ParseTreeListener\r
1762 def enterRule(self,listener):\r
1763 if hasattr( listener, "enterStruct_or_union" ):\r
1764 listener.enterStruct_or_union(self)\r
1765\r
1766 # @param listener Type: ParseTreeListener\r
1767 def exitRule(self,listener):\r
1768 if hasattr( listener, "exitStruct_or_union" ):\r
1769 listener.exitStruct_or_union(self)\r
1770\r
1771\r
1772\r
1773\r
1774 def struct_or_union(self):\r
1775\r
1776 localctx = CParser.Struct_or_unionContext(self, self._ctx, self.state)\r
1777 self.enterRule(localctx, 22, self.RULE_struct_or_union)\r
1778 self._la = 0 # Token type\r
1779 try:\r
1780 self.enterOuterAlt(localctx, 1)\r
1781 self.state = 264\r
1782 _la = self._input.LA(1)\r
1783 if not(_la==CParser.T__20 or _la==CParser.T__21):\r
1784 self._errHandler.recoverInline(self)\r
1785 else:\r
1786 self._errHandler.reportMatch(self)\r
1787 self.consume()\r
1788 except RecognitionException as re:\r
1789 localctx.exception = re\r
1790 self._errHandler.reportError(self, re)\r
1791 self._errHandler.recover(self, re)\r
1792 finally:\r
1793 self.exitRule()\r
1794 return localctx\r
1795\r
1796 class Struct_declaration_listContext(ParserRuleContext):\r
1797\r
1798 # @param parent=None Type: ParserRuleContext\r
1799 # @param invokingState=-1 Type: int\r
1800 def __init__(self,parser,parent=None,invokingState=-1):\r
1801 super().__init__(parent, invokingState)\r
1802 self.parser = parser\r
1803\r
1804 # @param i=None Type: int\r
1805 def struct_declaration(self,i=None):\r
1806 if i is None:\r
1807 return self.getTypedRuleContexts(CParser.Struct_declarationContext)\r
1808 else:\r
1809 return self.getTypedRuleContext(CParser.Struct_declarationContext,i)\r
1810\r
1811\r
1812 def getRuleIndex(self):\r
1813 return CParser.RULE_struct_declaration_list\r
1814\r
1815 # @param listener Type: ParseTreeListener\r
1816 def enterRule(self,listener):\r
1817 if hasattr( listener, "enterStruct_declaration_list" ):\r
1818 listener.enterStruct_declaration_list(self)\r
1819\r
1820 # @param listener Type: ParseTreeListener\r
1821 def exitRule(self,listener):\r
1822 if hasattr( listener, "exitStruct_declaration_list" ):\r
1823 listener.exitStruct_declaration_list(self)\r
1824\r
1825\r
1826\r
1827\r
1828 def struct_declaration_list(self):\r
1829\r
1830 localctx = CParser.Struct_declaration_listContext(self, self._ctx, self.state)\r
1831 self.enterRule(localctx, 24, self.RULE_struct_declaration_list)\r
1832 self._la = 0 # Token type\r
1833 try:\r
1834 self.enterOuterAlt(localctx, 1)\r
1835 self.state = 267\r
1836 self._errHandler.sync(self)\r
1837 _la = self._input.LA(1)\r
1838 while True:\r
1839 self.state = 266\r
1840 self.struct_declaration()\r
1841 self.state = 269\r
1842 self._errHandler.sync(self)\r
1843 _la = self._input.LA(1)\r
1844 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):\r
1845 break\r
1846\r
1847 except RecognitionException as re:\r
1848 localctx.exception = re\r
1849 self._errHandler.reportError(self, re)\r
1850 self._errHandler.recover(self, re)\r
1851 finally:\r
1852 self.exitRule()\r
1853 return localctx\r
1854\r
1855 class Struct_declarationContext(ParserRuleContext):\r
1856\r
1857 # @param parent=None Type: ParserRuleContext\r
1858 # @param invokingState=-1 Type: int\r
1859 def __init__(self,parser,parent=None,invokingState=-1):\r
1860 super().__init__(parent, invokingState)\r
1861 self.parser = parser\r
1862\r
1863 def specifier_qualifier_list(self):\r
1864 return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0)\r
1865\r
1866\r
1867 def struct_declarator_list(self):\r
1868 return self.getTypedRuleContext(CParser.Struct_declarator_listContext,0)\r
1869\r
1870\r
1871 def getRuleIndex(self):\r
1872 return CParser.RULE_struct_declaration\r
1873\r
1874 # @param listener Type: ParseTreeListener\r
1875 def enterRule(self,listener):\r
1876 if hasattr( listener, "enterStruct_declaration" ):\r
1877 listener.enterStruct_declaration(self)\r
1878\r
1879 # @param listener Type: ParseTreeListener\r
1880 def exitRule(self,listener):\r
1881 if hasattr( listener, "exitStruct_declaration" ):\r
1882 listener.exitStruct_declaration(self)\r
1883\r
1884\r
1885\r
1886\r
1887 def struct_declaration(self):\r
1888\r
1889 localctx = CParser.Struct_declarationContext(self, self._ctx, self.state)\r
1890 self.enterRule(localctx, 26, self.RULE_struct_declaration)\r
1891 try:\r
1892 self.enterOuterAlt(localctx, 1)\r
1893 self.state = 271\r
1894 self.specifier_qualifier_list()\r
1895 self.state = 272\r
1896 self.struct_declarator_list()\r
1897 self.state = 273\r
1898 self.match(CParser.T__1)\r
1899 except RecognitionException as re:\r
1900 localctx.exception = re\r
1901 self._errHandler.reportError(self, re)\r
1902 self._errHandler.recover(self, re)\r
1903 finally:\r
1904 self.exitRule()\r
1905 return localctx\r
1906\r
1907 class Specifier_qualifier_listContext(ParserRuleContext):\r
1908\r
1909 # @param parent=None Type: ParserRuleContext\r
1910 # @param invokingState=-1 Type: int\r
1911 def __init__(self,parser,parent=None,invokingState=-1):\r
1912 super().__init__(parent, invokingState)\r
1913 self.parser = parser\r
1914\r
1915 # @param i=None Type: int\r
1916 def type_qualifier(self,i=None):\r
1917 if i is None:\r
1918 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
1919 else:\r
1920 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
1921\r
1922\r
1923 # @param i=None Type: int\r
1924 def type_specifier(self,i=None):\r
1925 if i is None:\r
1926 return self.getTypedRuleContexts(CParser.Type_specifierContext)\r
1927 else:\r
1928 return self.getTypedRuleContext(CParser.Type_specifierContext,i)\r
1929\r
1930\r
1931 def getRuleIndex(self):\r
1932 return CParser.RULE_specifier_qualifier_list\r
1933\r
1934 # @param listener Type: ParseTreeListener\r
1935 def enterRule(self,listener):\r
1936 if hasattr( listener, "enterSpecifier_qualifier_list" ):\r
1937 listener.enterSpecifier_qualifier_list(self)\r
1938\r
1939 # @param listener Type: ParseTreeListener\r
1940 def exitRule(self,listener):\r
1941 if hasattr( listener, "exitSpecifier_qualifier_list" ):\r
1942 listener.exitSpecifier_qualifier_list(self)\r
1943\r
1944\r
1945\r
1946\r
1947 def specifier_qualifier_list(self):\r
1948\r
1949 localctx = CParser.Specifier_qualifier_listContext(self, self._ctx, self.state)\r
1950 self.enterRule(localctx, 28, self.RULE_specifier_qualifier_list)\r
1951 try:\r
1952 self.enterOuterAlt(localctx, 1)\r
1953 self.state = 277\r
1954 self._errHandler.sync(self)\r
1955 _alt = 1\r
1956 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
1957 if _alt == 1:\r
1958 self.state = 277\r
1959 self._errHandler.sync(self)\r
1960 token = self._input.LA(1)\r
1961 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]:\r
1962 self.state = 275\r
1963 self.type_qualifier()\r
1964 pass\r
1965 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]:\r
1966 self.state = 276\r
1967 self.type_specifier()\r
1968 pass\r
1969 else:\r
1970 raise NoViableAltException(self)\r
1971\r
1972\r
1973 else:\r
1974 raise NoViableAltException(self)\r
1975 self.state = 279\r
1976 self._errHandler.sync(self)\r
1977 _alt = self._interp.adaptivePredict(self._input,21,self._ctx)\r
1978\r
1979 except RecognitionException as re:\r
1980 localctx.exception = re\r
1981 self._errHandler.reportError(self, re)\r
1982 self._errHandler.recover(self, re)\r
1983 finally:\r
1984 self.exitRule()\r
1985 return localctx\r
1986\r
1987 class Struct_declarator_listContext(ParserRuleContext):\r
1988\r
1989 # @param parent=None Type: ParserRuleContext\r
1990 # @param invokingState=-1 Type: int\r
1991 def __init__(self,parser,parent=None,invokingState=-1):\r
1992 super().__init__(parent, invokingState)\r
1993 self.parser = parser\r
1994\r
1995 # @param i=None Type: int\r
1996 def struct_declarator(self,i=None):\r
1997 if i is None:\r
1998 return self.getTypedRuleContexts(CParser.Struct_declaratorContext)\r
1999 else:\r
2000 return self.getTypedRuleContext(CParser.Struct_declaratorContext,i)\r
2001\r
2002\r
2003 def getRuleIndex(self):\r
2004 return CParser.RULE_struct_declarator_list\r
2005\r
2006 # @param listener Type: ParseTreeListener\r
2007 def enterRule(self,listener):\r
2008 if hasattr( listener, "enterStruct_declarator_list" ):\r
2009 listener.enterStruct_declarator_list(self)\r
2010\r
2011 # @param listener Type: ParseTreeListener\r
2012 def exitRule(self,listener):\r
2013 if hasattr( listener, "exitStruct_declarator_list" ):\r
2014 listener.exitStruct_declarator_list(self)\r
2015\r
2016\r
2017\r
2018\r
2019 def struct_declarator_list(self):\r
2020\r
2021 localctx = CParser.Struct_declarator_listContext(self, self._ctx, self.state)\r
2022 self.enterRule(localctx, 30, self.RULE_struct_declarator_list)\r
2023 self._la = 0 # Token type\r
2024 try:\r
2025 self.enterOuterAlt(localctx, 1)\r
2026 self.state = 281\r
2027 self.struct_declarator()\r
2028 self.state = 286\r
2029 self._errHandler.sync(self)\r
2030 _la = self._input.LA(1)\r
2031 while _la==CParser.T__3:\r
2032 self.state = 282\r
2033 self.match(CParser.T__3)\r
2034 self.state = 283\r
2035 self.struct_declarator()\r
2036 self.state = 288\r
2037 self._errHandler.sync(self)\r
2038 _la = self._input.LA(1)\r
2039\r
2040 except RecognitionException as re:\r
2041 localctx.exception = re\r
2042 self._errHandler.reportError(self, re)\r
2043 self._errHandler.recover(self, re)\r
2044 finally:\r
2045 self.exitRule()\r
2046 return localctx\r
2047\r
2048 class Struct_declaratorContext(ParserRuleContext):\r
2049\r
2050 # @param parent=None Type: ParserRuleContext\r
2051 # @param invokingState=-1 Type: int\r
2052 def __init__(self,parser,parent=None,invokingState=-1):\r
2053 super().__init__(parent, invokingState)\r
2054 self.parser = parser\r
2055\r
2056 def declarator(self):\r
2057 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
2058\r
2059\r
2060 def constant_expression(self):\r
2061 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
2062\r
2063\r
2064 def getRuleIndex(self):\r
2065 return CParser.RULE_struct_declarator\r
2066\r
2067 # @param listener Type: ParseTreeListener\r
2068 def enterRule(self,listener):\r
2069 if hasattr( listener, "enterStruct_declarator" ):\r
2070 listener.enterStruct_declarator(self)\r
2071\r
2072 # @param listener Type: ParseTreeListener\r
2073 def exitRule(self,listener):\r
2074 if hasattr( listener, "exitStruct_declarator" ):\r
2075 listener.exitStruct_declarator(self)\r
2076\r
2077\r
2078\r
2079\r
2080 def struct_declarator(self):\r
2081\r
2082 localctx = CParser.Struct_declaratorContext(self, self._ctx, self.state)\r
2083 self.enterRule(localctx, 32, self.RULE_struct_declarator)\r
2084 self._la = 0 # Token type\r
2085 try:\r
2086 self.state = 296\r
2087 self._errHandler.sync(self)\r
2088 token = self._input.LA(1)\r
2089 if token in [CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__37, CParser.T__41, CParser.IDENTIFIER]:\r
2090 self.enterOuterAlt(localctx, 1)\r
2091 self.state = 289\r
2092 self.declarator()\r
2093 self.state = 292\r
2094 self._errHandler.sync(self)\r
2095 _la = self._input.LA(1)\r
2096 if _la==CParser.T__22:\r
2097 self.state = 290\r
2098 self.match(CParser.T__22)\r
2099 self.state = 291\r
2100 self.constant_expression()\r
2101\r
2102\r
2103 pass\r
2104 elif token in [CParser.T__22]:\r
2105 self.enterOuterAlt(localctx, 2)\r
2106 self.state = 294\r
2107 self.match(CParser.T__22)\r
2108 self.state = 295\r
2109 self.constant_expression()\r
2110 pass\r
2111 else:\r
2112 raise NoViableAltException(self)\r
2113\r
2114 except RecognitionException as re:\r
2115 localctx.exception = re\r
2116 self._errHandler.reportError(self, re)\r
2117 self._errHandler.recover(self, re)\r
2118 finally:\r
2119 self.exitRule()\r
2120 return localctx\r
2121\r
2122 class Enum_specifierContext(ParserRuleContext):\r
2123\r
2124 # @param parent=None Type: ParserRuleContext\r
2125 # @param invokingState=-1 Type: int\r
2126 def __init__(self,parser,parent=None,invokingState=-1):\r
2127 super().__init__(parent, invokingState)\r
2128 self.parser = parser\r
2129\r
2130 def enumerator_list(self):\r
2131 return self.getTypedRuleContext(CParser.Enumerator_listContext,0)\r
2132\r
2133\r
2134 def IDENTIFIER(self):\r
2135 return self.getToken(CParser.IDENTIFIER, 0)\r
2136\r
2137 def getRuleIndex(self):\r
2138 return CParser.RULE_enum_specifier\r
2139\r
2140 # @param listener Type: ParseTreeListener\r
2141 def enterRule(self,listener):\r
2142 if hasattr( listener, "enterEnum_specifier" ):\r
2143 listener.enterEnum_specifier(self)\r
2144\r
2145 # @param listener Type: ParseTreeListener\r
2146 def exitRule(self,listener):\r
2147 if hasattr( listener, "exitEnum_specifier" ):\r
2148 listener.exitEnum_specifier(self)\r
2149\r
2150\r
2151\r
2152\r
2153 def enum_specifier(self):\r
2154\r
2155 localctx = CParser.Enum_specifierContext(self, self._ctx, self.state)\r
2156 self.enterRule(localctx, 34, self.RULE_enum_specifier)\r
2157 self._la = 0 # Token type\r
2158 try:\r
2159 self.state = 317\r
2160 self._errHandler.sync(self)\r
2161 la_ = self._interp.adaptivePredict(self._input,27,self._ctx)\r
2162 if la_ == 1:\r
2163 self.enterOuterAlt(localctx, 1)\r
2164 self.state = 298\r
2165 self.match(CParser.T__23)\r
2166 self.state = 299\r
2167 self.match(CParser.T__0)\r
2168 self.state = 300\r
2169 self.enumerator_list()\r
2170 self.state = 302\r
2171 self._errHandler.sync(self)\r
2172 _la = self._input.LA(1)\r
2173 if _la==CParser.T__3:\r
2174 self.state = 301\r
2175 self.match(CParser.T__3)\r
2176\r
2177\r
2178 self.state = 304\r
2179 self.match(CParser.T__19)\r
2180 pass\r
2181\r
2182 elif la_ == 2:\r
2183 self.enterOuterAlt(localctx, 2)\r
2184 self.state = 306\r
2185 self.match(CParser.T__23)\r
2186 self.state = 307\r
2187 self.match(CParser.IDENTIFIER)\r
2188 self.state = 308\r
2189 self.match(CParser.T__0)\r
2190 self.state = 309\r
2191 self.enumerator_list()\r
2192 self.state = 311\r
2193 self._errHandler.sync(self)\r
2194 _la = self._input.LA(1)\r
2195 if _la==CParser.T__3:\r
2196 self.state = 310\r
2197 self.match(CParser.T__3)\r
2198\r
2199\r
2200 self.state = 313\r
2201 self.match(CParser.T__19)\r
2202 pass\r
2203\r
2204 elif la_ == 3:\r
2205 self.enterOuterAlt(localctx, 3)\r
2206 self.state = 315\r
2207 self.match(CParser.T__23)\r
2208 self.state = 316\r
2209 self.match(CParser.IDENTIFIER)\r
2210 pass\r
2211\r
2212\r
2213 except RecognitionException as re:\r
2214 localctx.exception = re\r
2215 self._errHandler.reportError(self, re)\r
2216 self._errHandler.recover(self, re)\r
2217 finally:\r
2218 self.exitRule()\r
2219 return localctx\r
2220\r
2221 class Enumerator_listContext(ParserRuleContext):\r
2222\r
2223 # @param parent=None Type: ParserRuleContext\r
2224 # @param invokingState=-1 Type: int\r
2225 def __init__(self,parser,parent=None,invokingState=-1):\r
2226 super().__init__(parent, invokingState)\r
2227 self.parser = parser\r
2228\r
2229 # @param i=None Type: int\r
2230 def enumerator(self,i=None):\r
2231 if i is None:\r
2232 return self.getTypedRuleContexts(CParser.EnumeratorContext)\r
2233 else:\r
2234 return self.getTypedRuleContext(CParser.EnumeratorContext,i)\r
2235\r
2236\r
2237 def getRuleIndex(self):\r
2238 return CParser.RULE_enumerator_list\r
2239\r
2240 # @param listener Type: ParseTreeListener\r
2241 def enterRule(self,listener):\r
2242 if hasattr( listener, "enterEnumerator_list" ):\r
2243 listener.enterEnumerator_list(self)\r
2244\r
2245 # @param listener Type: ParseTreeListener\r
2246 def exitRule(self,listener):\r
2247 if hasattr( listener, "exitEnumerator_list" ):\r
2248 listener.exitEnumerator_list(self)\r
2249\r
2250\r
2251\r
2252\r
2253 def enumerator_list(self):\r
2254\r
2255 localctx = CParser.Enumerator_listContext(self, self._ctx, self.state)\r
2256 self.enterRule(localctx, 36, self.RULE_enumerator_list)\r
2257 try:\r
2258 self.enterOuterAlt(localctx, 1)\r
2259 self.state = 319\r
2260 self.enumerator()\r
2261 self.state = 324\r
2262 self._errHandler.sync(self)\r
2263 _alt = self._interp.adaptivePredict(self._input,28,self._ctx)\r
2264 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2265 if _alt==1:\r
2266 self.state = 320\r
2267 self.match(CParser.T__3)\r
2268 self.state = 321\r
2269 self.enumerator()\r
2270 self.state = 326\r
2271 self._errHandler.sync(self)\r
2272 _alt = self._interp.adaptivePredict(self._input,28,self._ctx)\r
2273\r
2274 except RecognitionException as re:\r
2275 localctx.exception = re\r
2276 self._errHandler.reportError(self, re)\r
2277 self._errHandler.recover(self, re)\r
2278 finally:\r
2279 self.exitRule()\r
2280 return localctx\r
2281\r
2282 class EnumeratorContext(ParserRuleContext):\r
2283\r
2284 # @param parent=None Type: ParserRuleContext\r
2285 # @param invokingState=-1 Type: int\r
2286 def __init__(self,parser,parent=None,invokingState=-1):\r
2287 super().__init__(parent, invokingState)\r
2288 self.parser = parser\r
2289\r
2290 def IDENTIFIER(self):\r
2291 return self.getToken(CParser.IDENTIFIER, 0)\r
2292\r
2293 def constant_expression(self):\r
2294 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
2295\r
2296\r
2297 def getRuleIndex(self):\r
2298 return CParser.RULE_enumerator\r
2299\r
2300 # @param listener Type: ParseTreeListener\r
2301 def enterRule(self,listener):\r
2302 if hasattr( listener, "enterEnumerator" ):\r
2303 listener.enterEnumerator(self)\r
2304\r
2305 # @param listener Type: ParseTreeListener\r
2306 def exitRule(self,listener):\r
2307 if hasattr( listener, "exitEnumerator" ):\r
2308 listener.exitEnumerator(self)\r
2309\r
2310\r
2311\r
2312\r
2313 def enumerator(self):\r
2314\r
2315 localctx = CParser.EnumeratorContext(self, self._ctx, self.state)\r
2316 self.enterRule(localctx, 38, self.RULE_enumerator)\r
2317 self._la = 0 # Token type\r
2318 try:\r
2319 self.enterOuterAlt(localctx, 1)\r
2320 self.state = 327\r
2321 self.match(CParser.IDENTIFIER)\r
2322 self.state = 330\r
2323 self._errHandler.sync(self)\r
2324 _la = self._input.LA(1)\r
2325 if _la==CParser.T__4:\r
2326 self.state = 328\r
2327 self.match(CParser.T__4)\r
2328 self.state = 329\r
2329 self.constant_expression()\r
2330\r
2331\r
2332 except RecognitionException as re:\r
2333 localctx.exception = re\r
2334 self._errHandler.reportError(self, re)\r
2335 self._errHandler.recover(self, re)\r
2336 finally:\r
2337 self.exitRule()\r
2338 return localctx\r
2339\r
2340 class Type_qualifierContext(ParserRuleContext):\r
2341\r
2342 # @param parent=None Type: ParserRuleContext\r
2343 # @param invokingState=-1 Type: int\r
2344 def __init__(self,parser,parent=None,invokingState=-1):\r
2345 super().__init__(parent, invokingState)\r
2346 self.parser = parser\r
2347\r
2348\r
2349 def getRuleIndex(self):\r
2350 return CParser.RULE_type_qualifier\r
2351\r
2352 # @param listener Type: ParseTreeListener\r
2353 def enterRule(self,listener):\r
2354 if hasattr( listener, "enterType_qualifier" ):\r
2355 listener.enterType_qualifier(self)\r
2356\r
2357 # @param listener Type: ParseTreeListener\r
2358 def exitRule(self,listener):\r
2359 if hasattr( listener, "exitType_qualifier" ):\r
2360 listener.exitType_qualifier(self)\r
2361\r
2362\r
2363\r
2364\r
2365 def type_qualifier(self):\r
2366\r
2367 localctx = CParser.Type_qualifierContext(self, self._ctx, self.state)\r
2368 self.enterRule(localctx, 40, self.RULE_type_qualifier)\r
2369 self._la = 0 # Token type\r
2370 try:\r
2371 self.enterOuterAlt(localctx, 1)\r
2372 self.state = 332\r
2373 _la = self._input.LA(1)\r
2374 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)):\r
2375 self._errHandler.recoverInline(self)\r
2376 else:\r
2377 self._errHandler.reportMatch(self)\r
2378 self.consume()\r
2379 except RecognitionException as re:\r
2380 localctx.exception = re\r
2381 self._errHandler.reportError(self, re)\r
2382 self._errHandler.recover(self, re)\r
2383 finally:\r
2384 self.exitRule()\r
2385 return localctx\r
2386\r
2387 class DeclaratorContext(ParserRuleContext):\r
2388\r
2389 # @param parent=None Type: ParserRuleContext\r
2390 # @param invokingState=-1 Type: int\r
2391 def __init__(self,parser,parent=None,invokingState=-1):\r
2392 super().__init__(parent, invokingState)\r
2393 self.parser = parser\r
2394\r
2395 def direct_declarator(self):\r
2396 return self.getTypedRuleContext(CParser.Direct_declaratorContext,0)\r
2397\r
2398\r
2399 def pointer(self):\r
2400 return self.getTypedRuleContext(CParser.PointerContext,0)\r
2401\r
2402\r
2403 def getRuleIndex(self):\r
2404 return CParser.RULE_declarator\r
2405\r
2406 # @param listener Type: ParseTreeListener\r
2407 def enterRule(self,listener):\r
2408 if hasattr( listener, "enterDeclarator" ):\r
2409 listener.enterDeclarator(self)\r
2410\r
2411 # @param listener Type: ParseTreeListener\r
2412 def exitRule(self,listener):\r
2413 if hasattr( listener, "exitDeclarator" ):\r
2414 listener.exitDeclarator(self)\r
2415\r
2416\r
2417\r
2418\r
2419 def declarator(self):\r
2420\r
2421 localctx = CParser.DeclaratorContext(self, self._ctx, self.state)\r
2422 self.enterRule(localctx, 42, self.RULE_declarator)\r
2423 self._la = 0 # Token type\r
2424 try:\r
2425 self.state = 348\r
2426 self._errHandler.sync(self)\r
2427 la_ = self._interp.adaptivePredict(self._input,34,self._ctx)\r
2428 if la_ == 1:\r
2429 self.enterOuterAlt(localctx, 1)\r
2430 self.state = 335\r
2431 self._errHandler.sync(self)\r
2432 _la = self._input.LA(1)\r
2433 if _la==CParser.T__41:\r
2434 self.state = 334\r
2435 self.pointer()\r
2436\r
2437\r
2438 self.state = 338\r
2439 self._errHandler.sync(self)\r
2440 _la = self._input.LA(1)\r
2441 if _la==CParser.T__33:\r
2442 self.state = 337\r
2443 self.match(CParser.T__33)\r
2444\r
2445\r
2446 self.state = 341\r
2447 self._errHandler.sync(self)\r
2448 _la = self._input.LA(1)\r
2449 if _la==CParser.T__34:\r
2450 self.state = 340\r
2451 self.match(CParser.T__34)\r
2452\r
2453\r
2454 self.state = 344\r
2455 self._errHandler.sync(self)\r
2456 _la = self._input.LA(1)\r
2457 if _la==CParser.T__35:\r
2458 self.state = 343\r
2459 self.match(CParser.T__35)\r
2460\r
2461\r
2462 self.state = 346\r
2463 self.direct_declarator()\r
2464 pass\r
2465\r
2466 elif la_ == 2:\r
2467 self.enterOuterAlt(localctx, 2)\r
2468 self.state = 347\r
2469 self.pointer()\r
2470 pass\r
2471\r
2472\r
2473 except RecognitionException as re:\r
2474 localctx.exception = re\r
2475 self._errHandler.reportError(self, re)\r
2476 self._errHandler.recover(self, re)\r
2477 finally:\r
2478 self.exitRule()\r
2479 return localctx\r
2480\r
2481 class Direct_declaratorContext(ParserRuleContext):\r
2482\r
2483 # @param parent=None Type: ParserRuleContext\r
2484 # @param invokingState=-1 Type: int\r
2485 def __init__(self,parser,parent=None,invokingState=-1):\r
2486 super().__init__(parent, invokingState)\r
2487 self.parser = parser\r
2488\r
2489 def IDENTIFIER(self):\r
2490 return self.getToken(CParser.IDENTIFIER, 0)\r
2491\r
2492 # @param i=None Type: int\r
2493 def declarator_suffix(self,i=None):\r
2494 if i is None:\r
2495 return self.getTypedRuleContexts(CParser.Declarator_suffixContext)\r
2496 else:\r
2497 return self.getTypedRuleContext(CParser.Declarator_suffixContext,i)\r
2498\r
2499\r
2500 def declarator(self):\r
2501 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
2502\r
2503\r
2504 def getRuleIndex(self):\r
2505 return CParser.RULE_direct_declarator\r
2506\r
2507 # @param listener Type: ParseTreeListener\r
2508 def enterRule(self,listener):\r
2509 if hasattr( listener, "enterDirect_declarator" ):\r
2510 listener.enterDirect_declarator(self)\r
2511\r
2512 # @param listener Type: ParseTreeListener\r
2513 def exitRule(self,listener):\r
2514 if hasattr( listener, "exitDirect_declarator" ):\r
2515 listener.exitDirect_declarator(self)\r
2516\r
2517\r
2518\r
2519\r
2520 def direct_declarator(self):\r
2521\r
2522 localctx = CParser.Direct_declaratorContext(self, self._ctx, self.state)\r
2523 self.enterRule(localctx, 44, self.RULE_direct_declarator)\r
2524 try:\r
2525 self.state = 368\r
2526 self._errHandler.sync(self)\r
2527 token = self._input.LA(1)\r
2528 if token in [CParser.IDENTIFIER]:\r
2529 self.enterOuterAlt(localctx, 1)\r
2530 self.state = 350\r
2531 self.match(CParser.IDENTIFIER)\r
2532 self.state = 354\r
2533 self._errHandler.sync(self)\r
2534 _alt = self._interp.adaptivePredict(self._input,35,self._ctx)\r
2535 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2536 if _alt==1:\r
2537 self.state = 351\r
2538 self.declarator_suffix()\r
2539 self.state = 356\r
2540 self._errHandler.sync(self)\r
2541 _alt = self._interp.adaptivePredict(self._input,35,self._ctx)\r
2542\r
2543 pass\r
2544 elif token in [CParser.T__37]:\r
2545 self.enterOuterAlt(localctx, 2)\r
2546 self.state = 357\r
2547 self.match(CParser.T__37)\r
2548 self.state = 359\r
2549 self._errHandler.sync(self)\r
2550 la_ = self._interp.adaptivePredict(self._input,36,self._ctx)\r
2551 if la_ == 1:\r
2552 self.state = 358\r
2553 self.match(CParser.T__33)\r
2554\r
2555\r
2556 self.state = 361\r
2557 self.declarator()\r
2558 self.state = 362\r
2559 self.match(CParser.T__38)\r
2560 self.state = 364\r
2561 self._errHandler.sync(self)\r
2562 _alt = 1\r
2563 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2564 if _alt == 1:\r
2565 self.state = 363\r
2566 self.declarator_suffix()\r
2567\r
2568 else:\r
2569 raise NoViableAltException(self)\r
2570 self.state = 366\r
2571 self._errHandler.sync(self)\r
2572 _alt = self._interp.adaptivePredict(self._input,37,self._ctx)\r
2573\r
2574 pass\r
2575 else:\r
2576 raise NoViableAltException(self)\r
2577\r
2578 except RecognitionException as re:\r
2579 localctx.exception = re\r
2580 self._errHandler.reportError(self, re)\r
2581 self._errHandler.recover(self, re)\r
2582 finally:\r
2583 self.exitRule()\r
2584 return localctx\r
2585\r
2586 class Declarator_suffixContext(ParserRuleContext):\r
2587\r
2588 # @param parent=None Type: ParserRuleContext\r
2589 # @param invokingState=-1 Type: int\r
2590 def __init__(self,parser,parent=None,invokingState=-1):\r
2591 super().__init__(parent, invokingState)\r
2592 self.parser = parser\r
2593\r
2594 def constant_expression(self):\r
2595 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
2596\r
2597\r
2598 def parameter_type_list(self):\r
2599 return self.getTypedRuleContext(CParser.Parameter_type_listContext,0)\r
2600\r
2601\r
2602 def identifier_list(self):\r
2603 return self.getTypedRuleContext(CParser.Identifier_listContext,0)\r
2604\r
2605\r
2606 def getRuleIndex(self):\r
2607 return CParser.RULE_declarator_suffix\r
2608\r
2609 # @param listener Type: ParseTreeListener\r
2610 def enterRule(self,listener):\r
2611 if hasattr( listener, "enterDeclarator_suffix" ):\r
2612 listener.enterDeclarator_suffix(self)\r
2613\r
2614 # @param listener Type: ParseTreeListener\r
2615 def exitRule(self,listener):\r
2616 if hasattr( listener, "exitDeclarator_suffix" ):\r
2617 listener.exitDeclarator_suffix(self)\r
2618\r
2619\r
2620\r
2621\r
2622 def declarator_suffix(self):\r
2623\r
2624 localctx = CParser.Declarator_suffixContext(self, self._ctx, self.state)\r
2625 self.enterRule(localctx, 46, self.RULE_declarator_suffix)\r
2626 try:\r
2627 self.state = 386\r
2628 self._errHandler.sync(self)\r
2629 la_ = self._interp.adaptivePredict(self._input,39,self._ctx)\r
2630 if la_ == 1:\r
2631 self.enterOuterAlt(localctx, 1)\r
2632 self.state = 370\r
2633 self.match(CParser.T__39)\r
2634 self.state = 371\r
2635 self.constant_expression()\r
2636 self.state = 372\r
2637 self.match(CParser.T__40)\r
2638 pass\r
2639\r
2640 elif la_ == 2:\r
2641 self.enterOuterAlt(localctx, 2)\r
2642 self.state = 374\r
2643 self.match(CParser.T__39)\r
2644 self.state = 375\r
2645 self.match(CParser.T__40)\r
2646 pass\r
2647\r
2648 elif la_ == 3:\r
2649 self.enterOuterAlt(localctx, 3)\r
2650 self.state = 376\r
2651 self.match(CParser.T__37)\r
2652 self.state = 377\r
2653 self.parameter_type_list()\r
2654 self.state = 378\r
2655 self.match(CParser.T__38)\r
2656 pass\r
2657\r
2658 elif la_ == 4:\r
2659 self.enterOuterAlt(localctx, 4)\r
2660 self.state = 380\r
2661 self.match(CParser.T__37)\r
2662 self.state = 381\r
2663 self.identifier_list()\r
2664 self.state = 382\r
2665 self.match(CParser.T__38)\r
2666 pass\r
2667\r
2668 elif la_ == 5:\r
2669 self.enterOuterAlt(localctx, 5)\r
2670 self.state = 384\r
2671 self.match(CParser.T__37)\r
2672 self.state = 385\r
2673 self.match(CParser.T__38)\r
2674 pass\r
2675\r
2676\r
2677 except RecognitionException as re:\r
2678 localctx.exception = re\r
2679 self._errHandler.reportError(self, re)\r
2680 self._errHandler.recover(self, re)\r
2681 finally:\r
2682 self.exitRule()\r
2683 return localctx\r
2684\r
2685 class PointerContext(ParserRuleContext):\r
2686\r
2687 # @param parent=None Type: ParserRuleContext\r
2688 # @param invokingState=-1 Type: int\r
2689 def __init__(self,parser,parent=None,invokingState=-1):\r
2690 super().__init__(parent, invokingState)\r
2691 self.parser = parser\r
2692\r
2693 # @param i=None Type: int\r
2694 def type_qualifier(self,i=None):\r
2695 if i is None:\r
2696 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
2697 else:\r
2698 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
2699\r
2700\r
2701 def pointer(self):\r
2702 return self.getTypedRuleContext(CParser.PointerContext,0)\r
2703\r
2704\r
2705 def getRuleIndex(self):\r
2706 return CParser.RULE_pointer\r
2707\r
2708 # @param listener Type: ParseTreeListener\r
2709 def enterRule(self,listener):\r
2710 if hasattr( listener, "enterPointer" ):\r
2711 listener.enterPointer(self)\r
2712\r
2713 # @param listener Type: ParseTreeListener\r
2714 def exitRule(self,listener):\r
2715 if hasattr( listener, "exitPointer" ):\r
2716 listener.exitPointer(self)\r
2717\r
2718\r
2719\r
2720\r
2721 def pointer(self):\r
2722\r
2723 localctx = CParser.PointerContext(self, self._ctx, self.state)\r
2724 self.enterRule(localctx, 48, self.RULE_pointer)\r
2725 try:\r
2726 self.state = 400\r
2727 self._errHandler.sync(self)\r
2728 la_ = self._interp.adaptivePredict(self._input,42,self._ctx)\r
2729 if la_ == 1:\r
2730 self.enterOuterAlt(localctx, 1)\r
2731 self.state = 388\r
2732 self.match(CParser.T__41)\r
2733 self.state = 390\r
2734 self._errHandler.sync(self)\r
2735 _alt = 1\r
2736 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2737 if _alt == 1:\r
2738 self.state = 389\r
2739 self.type_qualifier()\r
2740\r
2741 else:\r
2742 raise NoViableAltException(self)\r
2743 self.state = 392\r
2744 self._errHandler.sync(self)\r
2745 _alt = self._interp.adaptivePredict(self._input,40,self._ctx)\r
2746\r
2747 self.state = 395\r
2748 self._errHandler.sync(self)\r
2749 la_ = self._interp.adaptivePredict(self._input,41,self._ctx)\r
2750 if la_ == 1:\r
2751 self.state = 394\r
2752 self.pointer()\r
2753\r
2754\r
2755 pass\r
2756\r
2757 elif la_ == 2:\r
2758 self.enterOuterAlt(localctx, 2)\r
2759 self.state = 397\r
2760 self.match(CParser.T__41)\r
2761 self.state = 398\r
2762 self.pointer()\r
2763 pass\r
2764\r
2765 elif la_ == 3:\r
2766 self.enterOuterAlt(localctx, 3)\r
2767 self.state = 399\r
2768 self.match(CParser.T__41)\r
2769 pass\r
2770\r
2771\r
2772 except RecognitionException as re:\r
2773 localctx.exception = re\r
2774 self._errHandler.reportError(self, re)\r
2775 self._errHandler.recover(self, re)\r
2776 finally:\r
2777 self.exitRule()\r
2778 return localctx\r
2779\r
2780 class Parameter_type_listContext(ParserRuleContext):\r
2781\r
2782 # @param parent=None Type: ParserRuleContext\r
2783 # @param invokingState=-1 Type: int\r
2784 def __init__(self,parser,parent=None,invokingState=-1):\r
2785 super().__init__(parent, invokingState)\r
2786 self.parser = parser\r
2787\r
2788 def parameter_list(self):\r
2789 return self.getTypedRuleContext(CParser.Parameter_listContext,0)\r
2790\r
2791\r
2792 def getRuleIndex(self):\r
2793 return CParser.RULE_parameter_type_list\r
2794\r
2795 # @param listener Type: ParseTreeListener\r
2796 def enterRule(self,listener):\r
2797 if hasattr( listener, "enterParameter_type_list" ):\r
2798 listener.enterParameter_type_list(self)\r
2799\r
2800 # @param listener Type: ParseTreeListener\r
2801 def exitRule(self,listener):\r
2802 if hasattr( listener, "exitParameter_type_list" ):\r
2803 listener.exitParameter_type_list(self)\r
2804\r
2805\r
2806\r
2807\r
2808 def parameter_type_list(self):\r
2809\r
2810 localctx = CParser.Parameter_type_listContext(self, self._ctx, self.state)\r
2811 self.enterRule(localctx, 50, self.RULE_parameter_type_list)\r
2812 self._la = 0 # Token type\r
2813 try:\r
2814 self.enterOuterAlt(localctx, 1)\r
2815 self.state = 402\r
2816 self.parameter_list()\r
2817 self.state = 408\r
2818 self._errHandler.sync(self)\r
2819 _la = self._input.LA(1)\r
2820 if _la==CParser.T__3:\r
2821 self.state = 403\r
2822 self.match(CParser.T__3)\r
2823 self.state = 405\r
2824 self._errHandler.sync(self)\r
2825 _la = self._input.LA(1)\r
2826 if _la==CParser.T__28:\r
2827 self.state = 404\r
2828 self.match(CParser.T__28)\r
2829\r
2830\r
2831 self.state = 407\r
2832 self.match(CParser.T__42)\r
2833\r
2834\r
2835 except RecognitionException as re:\r
2836 localctx.exception = re\r
2837 self._errHandler.reportError(self, re)\r
2838 self._errHandler.recover(self, re)\r
2839 finally:\r
2840 self.exitRule()\r
2841 return localctx\r
2842\r
2843 class Parameter_listContext(ParserRuleContext):\r
2844\r
2845 # @param parent=None Type: ParserRuleContext\r
2846 # @param invokingState=-1 Type: int\r
2847 def __init__(self,parser,parent=None,invokingState=-1):\r
2848 super().__init__(parent, invokingState)\r
2849 self.parser = parser\r
2850\r
2851 # @param i=None Type: int\r
2852 def parameter_declaration(self,i=None):\r
2853 if i is None:\r
2854 return self.getTypedRuleContexts(CParser.Parameter_declarationContext)\r
2855 else:\r
2856 return self.getTypedRuleContext(CParser.Parameter_declarationContext,i)\r
2857\r
2858\r
2859 def getRuleIndex(self):\r
2860 return CParser.RULE_parameter_list\r
2861\r
2862 # @param listener Type: ParseTreeListener\r
2863 def enterRule(self,listener):\r
2864 if hasattr( listener, "enterParameter_list" ):\r
2865 listener.enterParameter_list(self)\r
2866\r
2867 # @param listener Type: ParseTreeListener\r
2868 def exitRule(self,listener):\r
2869 if hasattr( listener, "exitParameter_list" ):\r
2870 listener.exitParameter_list(self)\r
2871\r
2872\r
2873\r
2874\r
2875 def parameter_list(self):\r
2876\r
2877 localctx = CParser.Parameter_listContext(self, self._ctx, self.state)\r
2878 self.enterRule(localctx, 52, self.RULE_parameter_list)\r
2879 try:\r
2880 self.enterOuterAlt(localctx, 1)\r
2881 self.state = 410\r
2882 self.parameter_declaration()\r
2883 self.state = 418\r
2884 self._errHandler.sync(self)\r
2885 _alt = self._interp.adaptivePredict(self._input,46,self._ctx)\r
2886 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2887 if _alt==1:\r
2888 self.state = 411\r
2889 self.match(CParser.T__3)\r
2890 self.state = 413\r
2891 self._errHandler.sync(self)\r
2892 la_ = self._interp.adaptivePredict(self._input,45,self._ctx)\r
2893 if la_ == 1:\r
2894 self.state = 412\r
2895 self.match(CParser.T__28)\r
2896\r
2897\r
2898 self.state = 415\r
2899 self.parameter_declaration()\r
2900 self.state = 420\r
2901 self._errHandler.sync(self)\r
2902 _alt = self._interp.adaptivePredict(self._input,46,self._ctx)\r
2903\r
2904 except RecognitionException as re:\r
2905 localctx.exception = re\r
2906 self._errHandler.reportError(self, re)\r
2907 self._errHandler.recover(self, re)\r
2908 finally:\r
2909 self.exitRule()\r
2910 return localctx\r
2911\r
2912 class Parameter_declarationContext(ParserRuleContext):\r
2913\r
2914 # @param parent=None Type: ParserRuleContext\r
2915 # @param invokingState=-1 Type: int\r
2916 def __init__(self,parser,parent=None,invokingState=-1):\r
2917 super().__init__(parent, invokingState)\r
2918 self.parser = parser\r
2919\r
2920 def declaration_specifiers(self):\r
2921 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
2922\r
2923\r
2924 # @param i=None Type: int\r
2925 def declarator(self,i=None):\r
2926 if i is None:\r
2927 return self.getTypedRuleContexts(CParser.DeclaratorContext)\r
2928 else:\r
2929 return self.getTypedRuleContext(CParser.DeclaratorContext,i)\r
2930\r
2931\r
2932 # @param i=None Type: int\r
2933 def abstract_declarator(self,i=None):\r
2934 if i is None:\r
2935 return self.getTypedRuleContexts(CParser.Abstract_declaratorContext)\r
2936 else:\r
2937 return self.getTypedRuleContext(CParser.Abstract_declaratorContext,i)\r
2938\r
2939\r
2940 def IDENTIFIER(self):\r
2941 return self.getToken(CParser.IDENTIFIER, 0)\r
2942\r
2943 # @param i=None Type: int\r
2944 def pointer(self,i=None):\r
2945 if i is None:\r
2946 return self.getTypedRuleContexts(CParser.PointerContext)\r
2947 else:\r
2948 return self.getTypedRuleContext(CParser.PointerContext,i)\r
2949\r
2950\r
2951 def getRuleIndex(self):\r
2952 return CParser.RULE_parameter_declaration\r
2953\r
2954 # @param listener Type: ParseTreeListener\r
2955 def enterRule(self,listener):\r
2956 if hasattr( listener, "enterParameter_declaration" ):\r
2957 listener.enterParameter_declaration(self)\r
2958\r
2959 # @param listener Type: ParseTreeListener\r
2960 def exitRule(self,listener):\r
2961 if hasattr( listener, "exitParameter_declaration" ):\r
2962 listener.exitParameter_declaration(self)\r
2963\r
2964\r
2965\r
2966\r
2967 def parameter_declaration(self):\r
2968\r
2969 localctx = CParser.Parameter_declarationContext(self, self._ctx, self.state)\r
2970 self.enterRule(localctx, 54, self.RULE_parameter_declaration)\r
2971 self._la = 0 # Token type\r
2972 try:\r
2973 self.state = 439\r
2974 self._errHandler.sync(self)\r
2975 la_ = self._interp.adaptivePredict(self._input,51,self._ctx)\r
2976 if la_ == 1:\r
2977 self.enterOuterAlt(localctx, 1)\r
2978 self.state = 421\r
2979 self.declaration_specifiers()\r
2980 self.state = 426\r
2981 self._errHandler.sync(self)\r
2982 _la = self._input.LA(1)\r
2983 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):\r
2984 self.state = 424\r
2985 self._errHandler.sync(self)\r
2986 la_ = self._interp.adaptivePredict(self._input,47,self._ctx)\r
2987 if la_ == 1:\r
2988 self.state = 422\r
2989 self.declarator()\r
2990 pass\r
2991\r
2992 elif la_ == 2:\r
2993 self.state = 423\r
2994 self.abstract_declarator()\r
2995 pass\r
2996\r
2997\r
2998 self.state = 428\r
2999 self._errHandler.sync(self)\r
3000 _la = self._input.LA(1)\r
3001\r
3002 self.state = 430\r
3003 self._errHandler.sync(self)\r
3004 _la = self._input.LA(1)\r
3005 if _la==CParser.T__28:\r
3006 self.state = 429\r
3007 self.match(CParser.T__28)\r
3008\r
3009\r
3010 pass\r
3011\r
3012 elif la_ == 2:\r
3013 self.enterOuterAlt(localctx, 2)\r
3014 self.state = 435\r
3015 self._errHandler.sync(self)\r
3016 _la = self._input.LA(1)\r
3017 while _la==CParser.T__41:\r
3018 self.state = 432\r
3019 self.pointer()\r
3020 self.state = 437\r
3021 self._errHandler.sync(self)\r
3022 _la = self._input.LA(1)\r
3023\r
3024 self.state = 438\r
3025 self.match(CParser.IDENTIFIER)\r
3026 pass\r
3027\r
3028\r
3029 except RecognitionException as re:\r
3030 localctx.exception = re\r
3031 self._errHandler.reportError(self, re)\r
3032 self._errHandler.recover(self, re)\r
3033 finally:\r
3034 self.exitRule()\r
3035 return localctx\r
3036\r
3037 class Identifier_listContext(ParserRuleContext):\r
3038\r
3039 # @param parent=None Type: ParserRuleContext\r
3040 # @param invokingState=-1 Type: int\r
3041 def __init__(self,parser,parent=None,invokingState=-1):\r
3042 super().__init__(parent, invokingState)\r
3043 self.parser = parser\r
3044\r
3045 # @param i=None Type: int\r
3046 def IDENTIFIER(self,i=None):\r
3047 if i is None:\r
3048 return self.getTokens(CParser.IDENTIFIER)\r
3049 else:\r
3050 return self.getToken(CParser.IDENTIFIER, i)\r
3051\r
3052 def getRuleIndex(self):\r
3053 return CParser.RULE_identifier_list\r
3054\r
3055 # @param listener Type: ParseTreeListener\r
3056 def enterRule(self,listener):\r
3057 if hasattr( listener, "enterIdentifier_list" ):\r
3058 listener.enterIdentifier_list(self)\r
3059\r
3060 # @param listener Type: ParseTreeListener\r
3061 def exitRule(self,listener):\r
3062 if hasattr( listener, "exitIdentifier_list" ):\r
3063 listener.exitIdentifier_list(self)\r
3064\r
3065\r
3066\r
3067\r
3068 def identifier_list(self):\r
3069\r
3070 localctx = CParser.Identifier_listContext(self, self._ctx, self.state)\r
3071 self.enterRule(localctx, 56, self.RULE_identifier_list)\r
3072 self._la = 0 # Token type\r
3073 try:\r
3074 self.enterOuterAlt(localctx, 1)\r
3075 self.state = 441\r
3076 self.match(CParser.IDENTIFIER)\r
3077 self.state = 446\r
3078 self._errHandler.sync(self)\r
3079 _la = self._input.LA(1)\r
3080 while _la==CParser.T__3:\r
3081 self.state = 442\r
3082 self.match(CParser.T__3)\r
3083 self.state = 443\r
3084 self.match(CParser.IDENTIFIER)\r
3085 self.state = 448\r
3086 self._errHandler.sync(self)\r
3087 _la = self._input.LA(1)\r
3088\r
3089 except RecognitionException as re:\r
3090 localctx.exception = re\r
3091 self._errHandler.reportError(self, re)\r
3092 self._errHandler.recover(self, re)\r
3093 finally:\r
3094 self.exitRule()\r
3095 return localctx\r
3096\r
3097 class Type_nameContext(ParserRuleContext):\r
3098\r
3099 # @param parent=None Type: ParserRuleContext\r
3100 # @param invokingState=-1 Type: int\r
3101 def __init__(self,parser,parent=None,invokingState=-1):\r
3102 super().__init__(parent, invokingState)\r
3103 self.parser = parser\r
3104\r
3105 def specifier_qualifier_list(self):\r
3106 return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0)\r
3107\r
3108\r
3109 def abstract_declarator(self):\r
3110 return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0)\r
3111\r
3112\r
3113 def type_id(self):\r
3114 return self.getTypedRuleContext(CParser.Type_idContext,0)\r
3115\r
3116\r
3117 def getRuleIndex(self):\r
3118 return CParser.RULE_type_name\r
3119\r
3120 # @param listener Type: ParseTreeListener\r
3121 def enterRule(self,listener):\r
3122 if hasattr( listener, "enterType_name" ):\r
3123 listener.enterType_name(self)\r
3124\r
3125 # @param listener Type: ParseTreeListener\r
3126 def exitRule(self,listener):\r
3127 if hasattr( listener, "exitType_name" ):\r
3128 listener.exitType_name(self)\r
3129\r
3130\r
3131\r
3132\r
3133 def type_name(self):\r
3134\r
3135 localctx = CParser.Type_nameContext(self, self._ctx, self.state)\r
3136 self.enterRule(localctx, 58, self.RULE_type_name)\r
3137 self._la = 0 # Token type\r
3138 try:\r
3139 self.state = 454\r
3140 self._errHandler.sync(self)\r
3141 la_ = self._interp.adaptivePredict(self._input,54,self._ctx)\r
3142 if la_ == 1:\r
3143 self.enterOuterAlt(localctx, 1)\r
3144 self.state = 449\r
3145 self.specifier_qualifier_list()\r
3146 self.state = 451\r
3147 self._errHandler.sync(self)\r
3148 _la = self._input.LA(1)\r
3149 if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__37) | (1 << CParser.T__39) | (1 << CParser.T__41))) != 0):\r
3150 self.state = 450\r
3151 self.abstract_declarator()\r
3152\r
3153\r
3154 pass\r
3155\r
3156 elif la_ == 2:\r
3157 self.enterOuterAlt(localctx, 2)\r
3158 self.state = 453\r
3159 self.type_id()\r
3160 pass\r
3161\r
3162\r
3163 except RecognitionException as re:\r
3164 localctx.exception = re\r
3165 self._errHandler.reportError(self, re)\r
3166 self._errHandler.recover(self, re)\r
3167 finally:\r
3168 self.exitRule()\r
3169 return localctx\r
3170\r
3171 class Abstract_declaratorContext(ParserRuleContext):\r
3172\r
3173 # @param parent=None Type: ParserRuleContext\r
3174 # @param invokingState=-1 Type: int\r
3175 def __init__(self,parser,parent=None,invokingState=-1):\r
3176 super().__init__(parent, invokingState)\r
3177 self.parser = parser\r
3178\r
3179 def pointer(self):\r
3180 return self.getTypedRuleContext(CParser.PointerContext,0)\r
3181\r
3182\r
3183 def direct_abstract_declarator(self):\r
3184 return self.getTypedRuleContext(CParser.Direct_abstract_declaratorContext,0)\r
3185\r
3186\r
3187 def getRuleIndex(self):\r
3188 return CParser.RULE_abstract_declarator\r
3189\r
3190 # @param listener Type: ParseTreeListener\r
3191 def enterRule(self,listener):\r
3192 if hasattr( listener, "enterAbstract_declarator" ):\r
3193 listener.enterAbstract_declarator(self)\r
3194\r
3195 # @param listener Type: ParseTreeListener\r
3196 def exitRule(self,listener):\r
3197 if hasattr( listener, "exitAbstract_declarator" ):\r
3198 listener.exitAbstract_declarator(self)\r
3199\r
3200\r
3201\r
3202\r
3203 def abstract_declarator(self):\r
3204\r
3205 localctx = CParser.Abstract_declaratorContext(self, self._ctx, self.state)\r
3206 self.enterRule(localctx, 60, self.RULE_abstract_declarator)\r
3207 try:\r
3208 self.state = 461\r
3209 self._errHandler.sync(self)\r
3210 token = self._input.LA(1)\r
3211 if token in [CParser.T__41]:\r
3212 self.enterOuterAlt(localctx, 1)\r
3213 self.state = 456\r
3214 self.pointer()\r
3215 self.state = 458\r
3216 self._errHandler.sync(self)\r
3217 la_ = self._interp.adaptivePredict(self._input,55,self._ctx)\r
3218 if la_ == 1:\r
3219 self.state = 457\r
3220 self.direct_abstract_declarator()\r
3221\r
3222\r
3223 pass\r
3224 elif token in [CParser.T__37, CParser.T__39]:\r
3225 self.enterOuterAlt(localctx, 2)\r
3226 self.state = 460\r
3227 self.direct_abstract_declarator()\r
3228 pass\r
3229 else:\r
3230 raise NoViableAltException(self)\r
3231\r
3232 except RecognitionException as re:\r
3233 localctx.exception = re\r
3234 self._errHandler.reportError(self, re)\r
3235 self._errHandler.recover(self, re)\r
3236 finally:\r
3237 self.exitRule()\r
3238 return localctx\r
3239\r
3240 class Direct_abstract_declaratorContext(ParserRuleContext):\r
3241\r
3242 # @param parent=None Type: ParserRuleContext\r
3243 # @param invokingState=-1 Type: int\r
3244 def __init__(self,parser,parent=None,invokingState=-1):\r
3245 super().__init__(parent, invokingState)\r
3246 self.parser = parser\r
3247\r
3248 def abstract_declarator(self):\r
3249 return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0)\r
3250\r
3251\r
3252 # @param i=None Type: int\r
3253 def abstract_declarator_suffix(self,i=None):\r
3254 if i is None:\r
3255 return self.getTypedRuleContexts(CParser.Abstract_declarator_suffixContext)\r
3256 else:\r
3257 return self.getTypedRuleContext(CParser.Abstract_declarator_suffixContext,i)\r
3258\r
3259\r
3260 def getRuleIndex(self):\r
3261 return CParser.RULE_direct_abstract_declarator\r
3262\r
3263 # @param listener Type: ParseTreeListener\r
3264 def enterRule(self,listener):\r
3265 if hasattr( listener, "enterDirect_abstract_declarator" ):\r
3266 listener.enterDirect_abstract_declarator(self)\r
3267\r
3268 # @param listener Type: ParseTreeListener\r
3269 def exitRule(self,listener):\r
3270 if hasattr( listener, "exitDirect_abstract_declarator" ):\r
3271 listener.exitDirect_abstract_declarator(self)\r
3272\r
3273\r
3274\r
3275 def direct_abstract_declarator(self):\r
3276\r
3277 localctx = CParser.Direct_abstract_declaratorContext(self, self._ctx, self.state)\r
3278 self.enterRule(localctx, 62, self.RULE_direct_abstract_declarator)\r
3279 try:\r
3280 self.enterOuterAlt(localctx, 1)\r
3281 self.state = 468\r
3282 self._errHandler.sync(self)\r
3283 la_ = self._interp.adaptivePredict(self._input,57,self._ctx)\r
3284 if la_ == 1:\r
3285 self.state = 463\r
3286 self.match(CParser.T__37)\r
3287 self.state = 464\r
3288 self.abstract_declarator()\r
3289 self.state = 465\r
3290 self.match(CParser.T__38)\r
3291 pass\r
3292\r
3293 elif la_ == 2:\r
3294 self.state = 467\r
3295 self.abstract_declarator_suffix()\r
3296 pass\r
3297\r
3298\r
3299 self.state = 473\r
3300 self._errHandler.sync(self)\r
3301 _alt = self._interp.adaptivePredict(self._input,58,self._ctx)\r
3302 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
3303 if _alt==1:\r
3304 self.state = 470\r
3305 self.abstract_declarator_suffix()\r
3306 self.state = 475\r
3307 self._errHandler.sync(self)\r
3308 _alt = self._interp.adaptivePredict(self._input,58,self._ctx)\r
3309\r
3310 except RecognitionException as re:\r
3311 localctx.exception = re\r
3312 self._errHandler.reportError(self, re)\r
3313 self._errHandler.recover(self, re)\r
3314 finally:\r
3315 self.exitRule()\r
3316 return localctx\r
3317\r
3318 class Abstract_declarator_suffixContext(ParserRuleContext):\r
3319\r
3320 # @param parent=None Type: ParserRuleContext\r
3321 # @param invokingState=-1 Type: int\r
3322 def __init__(self,parser,parent=None,invokingState=-1):\r
3323 super().__init__(parent, invokingState)\r
3324 self.parser = parser\r
3325\r
3326 def constant_expression(self):\r
3327 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
3328\r
3329\r
3330 def parameter_type_list(self):\r
3331 return self.getTypedRuleContext(CParser.Parameter_type_listContext,0)\r
3332\r
3333\r
3334 def getRuleIndex(self):\r
3335 return CParser.RULE_abstract_declarator_suffix\r
3336\r
3337 # @param listener Type: ParseTreeListener\r
3338 def enterRule(self,listener):\r
3339 if hasattr( listener, "enterAbstract_declarator_suffix" ):\r
3340 listener.enterAbstract_declarator_suffix(self)\r
3341\r
3342 # @param listener Type: ParseTreeListener\r
3343 def exitRule(self,listener):\r
3344 if hasattr( listener, "exitAbstract_declarator_suffix" ):\r
3345 listener.exitAbstract_declarator_suffix(self)\r
3346\r
3347\r
3348\r
3349\r
3350 def abstract_declarator_suffix(self):\r
3351\r
3352 localctx = CParser.Abstract_declarator_suffixContext(self, self._ctx, self.state)\r
3353 self.enterRule(localctx, 64, self.RULE_abstract_declarator_suffix)\r
3354 try:\r
3355 self.state = 488\r
3356 self._errHandler.sync(self)\r
3357 la_ = self._interp.adaptivePredict(self._input,59,self._ctx)\r
3358 if la_ == 1:\r
3359 self.enterOuterAlt(localctx, 1)\r
3360 self.state = 476\r
3361 self.match(CParser.T__39)\r
3362 self.state = 477\r
3363 self.match(CParser.T__40)\r
3364 pass\r
3365\r
3366 elif la_ == 2:\r
3367 self.enterOuterAlt(localctx, 2)\r
3368 self.state = 478\r
3369 self.match(CParser.T__39)\r
3370 self.state = 479\r
3371 self.constant_expression()\r
3372 self.state = 480\r
3373 self.match(CParser.T__40)\r
3374 pass\r
3375\r
3376 elif la_ == 3:\r
3377 self.enterOuterAlt(localctx, 3)\r
3378 self.state = 482\r
3379 self.match(CParser.T__37)\r
3380 self.state = 483\r
3381 self.match(CParser.T__38)\r
3382 pass\r
3383\r
3384 elif la_ == 4:\r
3385 self.enterOuterAlt(localctx, 4)\r
3386 self.state = 484\r
3387 self.match(CParser.T__37)\r
3388 self.state = 485\r
3389 self.parameter_type_list()\r
3390 self.state = 486\r
3391 self.match(CParser.T__38)\r
3392 pass\r
3393\r
3394\r
3395 except RecognitionException as re:\r
3396 localctx.exception = re\r
3397 self._errHandler.reportError(self, re)\r
3398 self._errHandler.recover(self, re)\r
3399 finally:\r
3400 self.exitRule()\r
3401 return localctx\r
3402\r
3403 class InitializerContext(ParserRuleContext):\r
3404\r
3405 # @param parent=None Type: ParserRuleContext\r
3406 # @param invokingState=-1 Type: int\r
3407 def __init__(self,parser,parent=None,invokingState=-1):\r
3408 super().__init__(parent, invokingState)\r
3409 self.parser = parser\r
3410\r
3411 def assignment_expression(self):\r
3412 return self.getTypedRuleContext(CParser.Assignment_expressionContext,0)\r
3413\r
3414\r
3415 def initializer_list(self):\r
3416 return self.getTypedRuleContext(CParser.Initializer_listContext,0)\r
3417\r
3418\r
3419 def getRuleIndex(self):\r
3420 return CParser.RULE_initializer\r
3421\r
3422 # @param listener Type: ParseTreeListener\r
3423 def enterRule(self,listener):\r
3424 if hasattr( listener, "enterInitializer" ):\r
3425 listener.enterInitializer(self)\r
3426\r
3427 # @param listener Type: ParseTreeListener\r
3428 def exitRule(self,listener):\r
3429 if hasattr( listener, "exitInitializer" ):\r
3430 listener.exitInitializer(self)\r
3431\r
3432\r
3433\r
3434\r
3435 def initializer(self):\r
3436\r
3437 localctx = CParser.InitializerContext(self, self._ctx, self.state)\r
3438 self.enterRule(localctx, 66, self.RULE_initializer)\r
3439 self._la = 0 # Token type\r
3440 try:\r
3441 self.state = 498\r
3442 self._errHandler.sync(self)\r
3443 token = self._input.LA(1)\r
3444 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]:\r
3445 self.enterOuterAlt(localctx, 1)\r
3446 self.state = 490\r
3447 self.assignment_expression()\r
3448 pass\r
3449 elif token in [CParser.T__0]:\r
3450 self.enterOuterAlt(localctx, 2)\r
3451 self.state = 491\r
3452 self.match(CParser.T__0)\r
3453 self.state = 492\r
3454 self.initializer_list()\r
3455 self.state = 494\r
3456 self._errHandler.sync(self)\r
3457 _la = self._input.LA(1)\r
3458 if _la==CParser.T__3:\r
3459 self.state = 493\r
3460 self.match(CParser.T__3)\r
3461\r
3462\r
3463 self.state = 496\r
3464 self.match(CParser.T__19)\r
3465 pass\r
3466 else:\r
3467 raise NoViableAltException(self)\r
3468\r
3469 except RecognitionException as re:\r
3470 localctx.exception = re\r
3471 self._errHandler.reportError(self, re)\r
3472 self._errHandler.recover(self, re)\r
3473 finally:\r
3474 self.exitRule()\r
3475 return localctx\r
3476\r
3477 class Initializer_listContext(ParserRuleContext):\r
3478\r
3479 # @param parent=None Type: ParserRuleContext\r
3480 # @param invokingState=-1 Type: int\r
3481 def __init__(self,parser,parent=None,invokingState=-1):\r
3482 super().__init__(parent, invokingState)\r
3483 self.parser = parser\r
3484\r
3485 # @param i=None Type: int\r
3486 def initializer(self,i=None):\r
3487 if i is None:\r
3488 return self.getTypedRuleContexts(CParser.InitializerContext)\r
3489 else:\r
3490 return self.getTypedRuleContext(CParser.InitializerContext,i)\r
3491\r
3492\r
3493 def getRuleIndex(self):\r
3494 return CParser.RULE_initializer_list\r
3495\r
3496 # @param listener Type: ParseTreeListener\r
3497 def enterRule(self,listener):\r
3498 if hasattr( listener, "enterInitializer_list" ):\r
3499 listener.enterInitializer_list(self)\r
3500\r
3501 # @param listener Type: ParseTreeListener\r
3502 def exitRule(self,listener):\r
3503 if hasattr( listener, "exitInitializer_list" ):\r
3504 listener.exitInitializer_list(self)\r
3505\r
3506\r
3507\r
3508\r
3509 def initializer_list(self):\r
3510\r
3511 localctx = CParser.Initializer_listContext(self, self._ctx, self.state)\r
3512 self.enterRule(localctx, 68, self.RULE_initializer_list)\r
3513 try:\r
3514 self.enterOuterAlt(localctx, 1)\r
3515 self.state = 500\r
3516 self.initializer()\r
3517 self.state = 505\r
3518 self._errHandler.sync(self)\r
3519 _alt = self._interp.adaptivePredict(self._input,62,self._ctx)\r
3520 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
3521 if _alt==1:\r
3522 self.state = 501\r
3523 self.match(CParser.T__3)\r
3524 self.state = 502\r
3525 self.initializer()\r
3526 self.state = 507\r
3527 self._errHandler.sync(self)\r
3528 _alt = self._interp.adaptivePredict(self._input,62,self._ctx)\r
3529\r
3530 except RecognitionException as re:\r
3531 localctx.exception = re\r
3532 self._errHandler.reportError(self, re)\r
3533 self._errHandler.recover(self, re)\r
3534 finally:\r
3535 self.exitRule()\r
3536 return localctx\r
3537\r
3538 class Argument_expression_listContext(ParserRuleContext):\r
3539\r
3540 # @param parent=None Type: ParserRuleContext\r
3541 # @param invokingState=-1 Type: int\r
3542 def __init__(self,parser,parent=None,invokingState=-1):\r
3543 super().__init__(parent, invokingState)\r
3544 self.parser = parser\r
3545\r
3546 # @param i=None Type: int\r
3547 def assignment_expression(self,i=None):\r
3548 if i is None:\r
3549 return self.getTypedRuleContexts(CParser.Assignment_expressionContext)\r
3550 else:\r
3551 return self.getTypedRuleContext(CParser.Assignment_expressionContext,i)\r
3552\r
3553\r
3554 def getRuleIndex(self):\r
3555 return CParser.RULE_argument_expression_list\r
3556\r
3557 # @param listener Type: ParseTreeListener\r
3558 def enterRule(self,listener):\r
3559 if hasattr( listener, "enterArgument_expression_list" ):\r
3560 listener.enterArgument_expression_list(self)\r
3561\r
3562 # @param listener Type: ParseTreeListener\r
3563 def exitRule(self,listener):\r
3564 if hasattr( listener, "exitArgument_expression_list" ):\r
3565 listener.exitArgument_expression_list(self)\r
3566\r
3567\r
3568\r
3569\r
3570 def argument_expression_list(self):\r
3571\r
3572 localctx = CParser.Argument_expression_listContext(self, self._ctx, self.state)\r
3573 self.enterRule(localctx, 70, self.RULE_argument_expression_list)\r
3574 self._la = 0 # Token type\r
3575 try:\r
3576 self.enterOuterAlt(localctx, 1)\r
3577 self.state = 508\r
3578 self.assignment_expression()\r
3579 self.state = 510\r
3580 self._errHandler.sync(self)\r
3581 _la = self._input.LA(1)\r
3582 if _la==CParser.T__28:\r
3583 self.state = 509\r
3584 self.match(CParser.T__28)\r
3585\r
3586\r
3587 self.state = 519\r
3588 self._errHandler.sync(self)\r
3589 _la = self._input.LA(1)\r
3590 while _la==CParser.T__3:\r
3591 self.state = 512\r
3592 self.match(CParser.T__3)\r
3593 self.state = 513\r
3594 self.assignment_expression()\r
3595 self.state = 515\r
3596 self._errHandler.sync(self)\r
3597 _la = self._input.LA(1)\r
3598 if _la==CParser.T__28:\r
3599 self.state = 514\r
3600 self.match(CParser.T__28)\r
3601\r
3602\r
3603 self.state = 521\r
3604 self._errHandler.sync(self)\r
3605 _la = self._input.LA(1)\r
3606\r
3607 except RecognitionException as re:\r
3608 localctx.exception = re\r
3609 self._errHandler.reportError(self, re)\r
3610 self._errHandler.recover(self, re)\r
3611 finally:\r
3612 self.exitRule()\r
3613 return localctx\r
3614\r
3615 class Additive_expressionContext(ParserRuleContext):\r
3616\r
3617 # @param parent=None Type: ParserRuleContext\r
3618 # @param invokingState=-1 Type: int\r
3619 def __init__(self,parser,parent=None,invokingState=-1):\r
3620 super().__init__(parent, invokingState)\r
3621 self.parser = parser\r
3622\r
3623 # @param i=None Type: int\r
3624 def multiplicative_expression(self,i=None):\r
3625 if i is None:\r
3626 return self.getTypedRuleContexts(CParser.Multiplicative_expressionContext)\r
3627 else:\r
3628 return self.getTypedRuleContext(CParser.Multiplicative_expressionContext,i)\r
3629\r
3630\r
3631 def getRuleIndex(self):\r
3632 return CParser.RULE_additive_expression\r
3633\r
3634 # @param listener Type: ParseTreeListener\r
3635 def enterRule(self,listener):\r
3636 if hasattr( listener, "enterAdditive_expression" ):\r
3637 listener.enterAdditive_expression(self)\r
3638\r
3639 # @param listener Type: ParseTreeListener\r
3640 def exitRule(self,listener):\r
3641 if hasattr( listener, "exitAdditive_expression" ):\r
3642 listener.exitAdditive_expression(self)\r
3643\r
3644\r
3645\r
3646\r
3647 def additive_expression(self):\r
3648\r
3649 localctx = CParser.Additive_expressionContext(self, self._ctx, self.state)\r
3650 self.enterRule(localctx, 72, self.RULE_additive_expression)\r
3651 self._la = 0 # Token type\r
3652 try:\r
3653 self.enterOuterAlt(localctx, 1)\r
3654 self.state = 522\r
3655 self.multiplicative_expression()\r
3656 self.state = 529\r
3657 self._errHandler.sync(self)\r
3658 _la = self._input.LA(1)\r
3659 while _la==CParser.T__43 or _la==CParser.T__44:\r
3660 self.state = 527\r
3661 self._errHandler.sync(self)\r
3662 token = self._input.LA(1)\r
3663 if token in [CParser.T__43]:\r
3664 self.state = 523\r
3665 self.match(CParser.T__43)\r
3666 self.state = 524\r
3667 self.multiplicative_expression()\r
3668 pass\r
3669 elif token in [CParser.T__44]:\r
3670 self.state = 525\r
3671 self.match(CParser.T__44)\r
3672 self.state = 526\r
3673 self.multiplicative_expression()\r
3674 pass\r
3675 else:\r
3676 raise NoViableAltException(self)\r
3677\r
3678 self.state = 531\r
3679 self._errHandler.sync(self)\r
3680 _la = self._input.LA(1)\r
3681\r
3682 except RecognitionException as re:\r
3683 localctx.exception = re\r
3684 self._errHandler.reportError(self, re)\r
3685 self._errHandler.recover(self, re)\r
3686 finally:\r
3687 self.exitRule()\r
3688 return localctx\r
3689\r
3690 class Multiplicative_expressionContext(ParserRuleContext):\r
3691\r
3692 # @param parent=None Type: ParserRuleContext\r
3693 # @param invokingState=-1 Type: int\r
3694 def __init__(self,parser,parent=None,invokingState=-1):\r
3695 super().__init__(parent, invokingState)\r
3696 self.parser = parser\r
3697\r
3698 # @param i=None Type: int\r
3699 def cast_expression(self,i=None):\r
3700 if i is None:\r
3701 return self.getTypedRuleContexts(CParser.Cast_expressionContext)\r
3702 else:\r
3703 return self.getTypedRuleContext(CParser.Cast_expressionContext,i)\r
3704\r
3705\r
3706 def getRuleIndex(self):\r
3707 return CParser.RULE_multiplicative_expression\r
3708\r
3709 # @param listener Type: ParseTreeListener\r
3710 def enterRule(self,listener):\r
3711 if hasattr( listener, "enterMultiplicative_expression" ):\r
3712 listener.enterMultiplicative_expression(self)\r
3713\r
3714 # @param listener Type: ParseTreeListener\r
3715 def exitRule(self,listener):\r
3716 if hasattr( listener, "exitMultiplicative_expression" ):\r
3717 listener.exitMultiplicative_expression(self)\r
3718\r
3719\r
3720\r
3721\r
3722 def multiplicative_expression(self):\r
3723\r
3724 localctx = CParser.Multiplicative_expressionContext(self, self._ctx, self.state)\r
3725 self.enterRule(localctx, 74, self.RULE_multiplicative_expression)\r
3726 self._la = 0 # Token type\r
3727 try:\r
3728 self.enterOuterAlt(localctx, 1)\r
3729 self.state = 532\r
3730 self.cast_expression()\r
3731 self.state = 541\r
3732 self._errHandler.sync(self)\r
3733 _la = self._input.LA(1)\r
3734 while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__41) | (1 << CParser.T__45) | (1 << CParser.T__46))) != 0):\r
3735 self.state = 539\r
3736 self._errHandler.sync(self)\r
3737 token = self._input.LA(1)\r
3738 if token in [CParser.T__41]:\r
3739 self.state = 533\r
3740 self.match(CParser.T__41)\r
3741 self.state = 534\r
3742 self.cast_expression()\r
3743 pass\r
3744 elif token in [CParser.T__45]:\r
3745 self.state = 535\r
3746 self.match(CParser.T__45)\r
3747 self.state = 536\r
3748 self.cast_expression()\r
3749 pass\r
3750 elif token in [CParser.T__46]:\r
3751 self.state = 537\r
3752 self.match(CParser.T__46)\r
3753 self.state = 538\r
3754 self.cast_expression()\r
3755 pass\r
3756 else:\r
3757 raise NoViableAltException(self)\r
3758\r
3759 self.state = 543\r
3760 self._errHandler.sync(self)\r
3761 _la = self._input.LA(1)\r
3762\r
3763 except RecognitionException as re:\r
3764 localctx.exception = re\r
3765 self._errHandler.reportError(self, re)\r
3766 self._errHandler.recover(self, re)\r
3767 finally:\r
3768 self.exitRule()\r
3769 return localctx\r
3770\r
3771 class Cast_expressionContext(ParserRuleContext):\r
3772\r
3773 # @param parent=None Type: ParserRuleContext\r
3774 # @param invokingState=-1 Type: int\r
3775 def __init__(self,parser,parent=None,invokingState=-1):\r
3776 super().__init__(parent, invokingState)\r
3777 self.parser = parser\r
3778\r
3779 def type_name(self):\r
3780 return self.getTypedRuleContext(CParser.Type_nameContext,0)\r
3781\r
3782\r
3783 def cast_expression(self):\r
3784 return self.getTypedRuleContext(CParser.Cast_expressionContext,0)\r
3785\r
3786\r
3787 def unary_expression(self):\r
3788 return self.getTypedRuleContext(CParser.Unary_expressionContext,0)\r
3789\r
3790\r
3791 def getRuleIndex(self):\r
3792 return CParser.RULE_cast_expression\r
3793\r
3794 # @param listener Type: ParseTreeListener\r
3795 def enterRule(self,listener):\r
3796 if hasattr( listener, "enterCast_expression" ):\r
3797 listener.enterCast_expression(self)\r
3798\r
3799 # @param listener Type: ParseTreeListener\r
3800 def exitRule(self,listener):\r
3801 if hasattr( listener, "exitCast_expression" ):\r
3802 listener.exitCast_expression(self)\r
3803\r
3804\r
3805\r
3806\r
3807 def cast_expression(self):\r
3808\r
3809 localctx = CParser.Cast_expressionContext(self, self._ctx, self.state)\r
3810 self.enterRule(localctx, 76, self.RULE_cast_expression)\r
3811 try:\r
3812 self.state = 550\r
3813 self._errHandler.sync(self)\r
3814 la_ = self._interp.adaptivePredict(self._input,70,self._ctx)\r
3815 if la_ == 1:\r
3816 self.enterOuterAlt(localctx, 1)\r
3817 self.state = 544\r
3818 self.match(CParser.T__37)\r
3819 self.state = 545\r
3820 self.type_name()\r
3821 self.state = 546\r
3822 self.match(CParser.T__38)\r
3823 self.state = 547\r
3824 self.cast_expression()\r
3825 pass\r
3826\r
3827 elif la_ == 2:\r
3828 self.enterOuterAlt(localctx, 2)\r
3829 self.state = 549\r
3830 self.unary_expression()\r
3831 pass\r
3832\r
3833\r
3834 except RecognitionException as re:\r
3835 localctx.exception = re\r
3836 self._errHandler.reportError(self, re)\r
3837 self._errHandler.recover(self, re)\r
3838 finally:\r
3839 self.exitRule()\r
3840 return localctx\r
3841\r
3842 class Unary_expressionContext(ParserRuleContext):\r
3843\r
3844 # @param parent=None Type: ParserRuleContext\r
3845 # @param invokingState=-1 Type: int\r
3846 def __init__(self,parser,parent=None,invokingState=-1):\r
3847 super().__init__(parent, invokingState)\r
3848 self.parser = parser\r
3849\r
3850 def postfix_expression(self):\r
3851 return self.getTypedRuleContext(CParser.Postfix_expressionContext,0)\r
3852\r
3853\r
3854 def unary_expression(self):\r
3855 return self.getTypedRuleContext(CParser.Unary_expressionContext,0)\r
3856\r
3857\r
3858 def unary_operator(self):\r
3859 return self.getTypedRuleContext(CParser.Unary_operatorContext,0)\r
3860\r
3861\r
3862 def cast_expression(self):\r
3863 return self.getTypedRuleContext(CParser.Cast_expressionContext,0)\r
3864\r
3865\r
3866 def type_name(self):\r
3867 return self.getTypedRuleContext(CParser.Type_nameContext,0)\r
3868\r
3869\r
3870 def getRuleIndex(self):\r
3871 return CParser.RULE_unary_expression\r
3872\r
3873 # @param listener Type: ParseTreeListener\r
3874 def enterRule(self,listener):\r
3875 if hasattr( listener, "enterUnary_expression" ):\r
3876 listener.enterUnary_expression(self)\r
3877\r
3878 # @param listener Type: ParseTreeListener\r
3879 def exitRule(self,listener):\r
3880 if hasattr( listener, "exitUnary_expression" ):\r
3881 listener.exitUnary_expression(self)\r
3882\r
3883\r
3884\r
3885\r
3886 def unary_expression(self):\r
3887\r
3888 localctx = CParser.Unary_expressionContext(self, self._ctx, self.state)\r
3889 self.enterRule(localctx, 78, self.RULE_unary_expression)\r
3890 try:\r
3891 self.state = 567\r
3892 self._errHandler.sync(self)\r
3893 la_ = self._interp.adaptivePredict(self._input,71,self._ctx)\r
3894 if la_ == 1:\r
3895 self.enterOuterAlt(localctx, 1)\r
3896 self.state = 552\r
3897 self.postfix_expression()\r
3898 pass\r
3899\r
3900 elif la_ == 2:\r
3901 self.enterOuterAlt(localctx, 2)\r
3902 self.state = 553\r
3903 self.match(CParser.T__47)\r
3904 self.state = 554\r
3905 self.unary_expression()\r
3906 pass\r
3907\r
3908 elif la_ == 3:\r
3909 self.enterOuterAlt(localctx, 3)\r
3910 self.state = 555\r
3911 self.match(CParser.T__48)\r
3912 self.state = 556\r
3913 self.unary_expression()\r
3914 pass\r
3915\r
3916 elif la_ == 4:\r
3917 self.enterOuterAlt(localctx, 4)\r
3918 self.state = 557\r
3919 self.unary_operator()\r
3920 self.state = 558\r
3921 self.cast_expression()\r
3922 pass\r
3923\r
3924 elif la_ == 5:\r
3925 self.enterOuterAlt(localctx, 5)\r
3926 self.state = 560\r
3927 self.match(CParser.T__49)\r
3928 self.state = 561\r
3929 self.unary_expression()\r
3930 pass\r
3931\r
3932 elif la_ == 6:\r
3933 self.enterOuterAlt(localctx, 6)\r
3934 self.state = 562\r
3935 self.match(CParser.T__49)\r
3936 self.state = 563\r
3937 self.match(CParser.T__37)\r
3938 self.state = 564\r
3939 self.type_name()\r
3940 self.state = 565\r
3941 self.match(CParser.T__38)\r
3942 pass\r
3943\r
3944\r
3945 except RecognitionException as re:\r
3946 localctx.exception = re\r
3947 self._errHandler.reportError(self, re)\r
3948 self._errHandler.recover(self, re)\r
3949 finally:\r
3950 self.exitRule()\r
3951 return localctx\r
3952\r
3953 class Postfix_expressionContext(ParserRuleContext):\r
3954\r
3955 # @param parent=None Type: ParserRuleContext\r
3956 # @param invokingState=-1 Type: int\r
3957 def __init__(self,parser,parent=None,invokingState=-1):\r
3958 super().__init__(parent, invokingState)\r
3959 self.parser = parser\r
3960 self.FuncCallText = ''\r
3961 self.p = None # Primary_expressionContext\r
3962 self.a = None # Token\r
3963 self.c = None # Argument_expression_listContext\r
3964 self.b = None # Token\r
3965 self.x = None # Token\r
3966 self.y = None # Token\r
3967 self.z = None # Token\r
3968\r
3969 def primary_expression(self):\r
3970 return self.getTypedRuleContext(CParser.Primary_expressionContext,0)\r
3971\r
3972\r
3973 # @param i=None Type: int\r
3974 def expression(self,i=None):\r
3975 if i is None:\r
3976 return self.getTypedRuleContexts(CParser.ExpressionContext)\r
3977 else:\r
3978 return self.getTypedRuleContext(CParser.ExpressionContext,i)\r
3979\r
3980\r
3981 # @param i=None Type: int\r
3982 def macro_parameter_list(self,i=None):\r
3983 if i is None:\r
3984 return self.getTypedRuleContexts(CParser.Macro_parameter_listContext)\r
3985 else:\r
3986 return self.getTypedRuleContext(CParser.Macro_parameter_listContext,i)\r
3987\r
3988\r
3989 # @param i=None Type: int\r
3990 def argument_expression_list(self,i=None):\r
3991 if i is None:\r
3992 return self.getTypedRuleContexts(CParser.Argument_expression_listContext)\r
3993 else:\r
3994 return self.getTypedRuleContext(CParser.Argument_expression_listContext,i)\r
3995\r
3996\r
3997 # @param i=None Type: int\r
3998 def IDENTIFIER(self,i=None):\r
3999 if i is None:\r
4000 return self.getTokens(CParser.IDENTIFIER)\r
4001 else:\r
4002 return self.getToken(CParser.IDENTIFIER, i)\r
4003\r
4004 def getRuleIndex(self):\r
4005 return CParser.RULE_postfix_expression\r
4006\r
4007 # @param listener Type: ParseTreeListener\r
4008 def enterRule(self,listener):\r
4009 if hasattr( listener, "enterPostfix_expression" ):\r
4010 listener.enterPostfix_expression(self)\r
4011\r
4012 # @param listener Type: ParseTreeListener\r
4013 def exitRule(self,listener):\r
4014 if hasattr( listener, "exitPostfix_expression" ):\r
4015 listener.exitPostfix_expression(self)\r
4016\r
4017\r
4018\r
4019\r
4020 def postfix_expression(self):\r
4021\r
4022 localctx = CParser.Postfix_expressionContext(self, self._ctx, self.state)\r
4023 self.enterRule(localctx, 80, self.RULE_postfix_expression)\r
4024\r
4025 self.FuncCallText=''\r
4026\r
4027 try:\r
4028 self.enterOuterAlt(localctx, 1)\r
4029 self.state = 569\r
4030 localctx.p = self.primary_expression()\r
4031 self.FuncCallText += (None if localctx.p is None else self._input.getText((localctx.p.start,localctx.p.stop)))\r
4032 self.state = 600\r
4033 self._errHandler.sync(self)\r
4034 _alt = self._interp.adaptivePredict(self._input,73,self._ctx)\r
4035 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
4036 if _alt==1:\r
4037 self.state = 598\r
4038 self._errHandler.sync(self)\r
4039 la_ = self._interp.adaptivePredict(self._input,72,self._ctx)\r
4040 if la_ == 1:\r
4041 self.state = 571\r
4042 self.match(CParser.T__39)\r
4043 self.state = 572\r
4044 self.expression()\r
4045 self.state = 573\r
4046 self.match(CParser.T__40)\r
4047 pass\r
4048\r
4049 elif la_ == 2:\r
4050 self.state = 575\r
4051 self.match(CParser.T__37)\r
4052 self.state = 576\r
4053 localctx.a = self.match(CParser.T__38)\r
4054 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, '')\r
4055 pass\r
4056\r
4057 elif la_ == 3:\r
4058 self.state = 578\r
4059 self.match(CParser.T__37)\r
4060 self.state = 579\r
4061 localctx.c = self.argument_expression_list()\r
4062 self.state = 580\r
4063 localctx.b = self.match(CParser.T__38)\r
4064 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))))\r
4065 pass\r
4066\r
4067 elif la_ == 4:\r
4068 self.state = 583\r
4069 self.match(CParser.T__37)\r
4070 self.state = 584\r
4071 self.macro_parameter_list()\r
4072 self.state = 585\r
4073 self.match(CParser.T__38)\r
4074 pass\r
4075\r
4076 elif la_ == 5:\r
4077 self.state = 587\r
4078 self.match(CParser.T__50)\r
4079 self.state = 588\r
4080 localctx.x = self.match(CParser.IDENTIFIER)\r
4081 self.FuncCallText += '.' + (None if localctx.x is None else localctx.x.text)\r
4082 pass\r
4083\r
4084 elif la_ == 6:\r
4085 self.state = 590\r
4086 self.match(CParser.T__41)\r
4087 self.state = 591\r
4088 localctx.y = self.match(CParser.IDENTIFIER)\r
4089 self.FuncCallText = (None if localctx.y is None else localctx.y.text)\r
4090 pass\r
4091\r
4092 elif la_ == 7:\r
4093 self.state = 593\r
4094 self.match(CParser.T__51)\r
4095 self.state = 594\r
4096 localctx.z = self.match(CParser.IDENTIFIER)\r
4097 self.FuncCallText += '->' + (None if localctx.z is None else localctx.z.text)\r
4098 pass\r
4099\r
4100 elif la_ == 8:\r
4101 self.state = 596\r
4102 self.match(CParser.T__47)\r
4103 pass\r
4104\r
4105 elif la_ == 9:\r
4106 self.state = 597\r
4107 self.match(CParser.T__48)\r
4108 pass\r
4109\r
4110\r
4111 self.state = 602\r
4112 self._errHandler.sync(self)\r
4113 _alt = self._interp.adaptivePredict(self._input,73,self._ctx)\r
4114\r
4115 except RecognitionException as re:\r
4116 localctx.exception = re\r
4117 self._errHandler.reportError(self, re)\r
4118 self._errHandler.recover(self, re)\r
4119 finally:\r
4120 self.exitRule()\r
4121 return localctx\r
4122\r
4123 class Macro_parameter_listContext(ParserRuleContext):\r
4124\r
4125 # @param parent=None Type: ParserRuleContext\r
4126 # @param invokingState=-1 Type: int\r
4127 def __init__(self,parser,parent=None,invokingState=-1):\r
4128 super().__init__(parent, invokingState)\r
4129 self.parser = parser\r
4130\r
4131 # @param i=None Type: int\r
4132 def parameter_declaration(self,i=None):\r
4133 if i is None:\r
4134 return self.getTypedRuleContexts(CParser.Parameter_declarationContext)\r
4135 else:\r
4136 return self.getTypedRuleContext(CParser.Parameter_declarationContext,i)\r
4137\r
4138\r
4139 def getRuleIndex(self):\r
4140 return CParser.RULE_macro_parameter_list\r
4141\r
4142 # @param listener Type: ParseTreeListener\r
4143 def enterRule(self,listener):\r
4144 if hasattr( listener, "enterMacro_parameter_list" ):\r
4145 listener.enterMacro_parameter_list(self)\r
4146\r
4147 # @param listener Type: ParseTreeListener\r
4148 def exitRule(self,listener):\r
4149 if hasattr( listener, "exitMacro_parameter_list" ):\r
4150 listener.exitMacro_parameter_list(self)\r
4151\r
4152\r
4153\r
4154\r
4155 def macro_parameter_list(self):\r
4156\r
4157 localctx = CParser.Macro_parameter_listContext(self, self._ctx, self.state)\r
4158 self.enterRule(localctx, 82, self.RULE_macro_parameter_list)\r
4159 self._la = 0 # Token type\r
4160 try:\r
4161 self.enterOuterAlt(localctx, 1)\r
4162 self.state = 603\r
4163 self.parameter_declaration()\r
4164 self.state = 608\r
4165 self._errHandler.sync(self)\r
4166 _la = self._input.LA(1)\r
4167 while _la==CParser.T__3:\r
4168 self.state = 604\r
4169 self.match(CParser.T__3)\r
4170 self.state = 605\r
4171 self.parameter_declaration()\r
4172 self.state = 610\r
4173 self._errHandler.sync(self)\r
4174 _la = self._input.LA(1)\r
4175\r
4176 except RecognitionException as re:\r
4177 localctx.exception = re\r
4178 self._errHandler.reportError(self, re)\r
4179 self._errHandler.recover(self, re)\r
4180 finally:\r
4181 self.exitRule()\r
4182 return localctx\r
4183\r
4184 class Unary_operatorContext(ParserRuleContext):\r
4185\r
4186 # @param parent=None Type: ParserRuleContext\r
4187 # @param invokingState=-1 Type: int\r
4188 def __init__(self,parser,parent=None,invokingState=-1):\r
4189 super().__init__(parent, invokingState)\r
4190 self.parser = parser\r
4191\r
4192\r
4193 def getRuleIndex(self):\r
4194 return CParser.RULE_unary_operator\r
4195\r
4196 # @param listener Type: ParseTreeListener\r
4197 def enterRule(self,listener):\r
4198 if hasattr( listener, "enterUnary_operator" ):\r
4199 listener.enterUnary_operator(self)\r
4200\r
4201 # @param listener Type: ParseTreeListener\r
4202 def exitRule(self,listener):\r
4203 if hasattr( listener, "exitUnary_operator" ):\r
4204 listener.exitUnary_operator(self)\r
4205\r
4206\r
4207\r
4208\r
4209 def unary_operator(self):\r
4210\r
4211 localctx = CParser.Unary_operatorContext(self, self._ctx, self.state)\r
4212 self.enterRule(localctx, 84, self.RULE_unary_operator)\r
4213 self._la = 0 # Token type\r
4214 try:\r
4215 self.enterOuterAlt(localctx, 1)\r
4216 self.state = 611\r
4217 _la = self._input.LA(1)\r
4218 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)):\r
4219 self._errHandler.recoverInline(self)\r
4220 else:\r
4221 self._errHandler.reportMatch(self)\r
4222 self.consume()\r
4223 except RecognitionException as re:\r
4224 localctx.exception = re\r
4225 self._errHandler.reportError(self, re)\r
4226 self._errHandler.recover(self, re)\r
4227 finally:\r
4228 self.exitRule()\r
4229 return localctx\r
4230\r
4231 class Primary_expressionContext(ParserRuleContext):\r
4232\r
4233 # @param parent=None Type: ParserRuleContext\r
4234 # @param invokingState=-1 Type: int\r
4235 def __init__(self,parser,parent=None,invokingState=-1):\r
4236 super().__init__(parent, invokingState)\r
4237 self.parser = parser\r
4238\r
4239 def IDENTIFIER(self):\r
4240 return self.getToken(CParser.IDENTIFIER, 0)\r
4241\r
4242 def constant(self):\r
4243 return self.getTypedRuleContext(CParser.ConstantContext,0)\r
4244\r
4245\r
4246 def expression(self):\r
4247 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
4248\r
4249\r
4250 def getRuleIndex(self):\r
4251 return CParser.RULE_primary_expression\r
4252\r
4253 # @param listener Type: ParseTreeListener\r
4254 def enterRule(self,listener):\r
4255 if hasattr( listener, "enterPrimary_expression" ):\r
4256 listener.enterPrimary_expression(self)\r
4257\r
4258 # @param listener Type: ParseTreeListener\r
4259 def exitRule(self,listener):\r
4260 if hasattr( listener, "exitPrimary_expression" ):\r
4261 listener.exitPrimary_expression(self)\r
4262\r
4263\r
4264\r
4265\r
4266 def primary_expression(self):\r
4267\r
4268 localctx = CParser.Primary_expressionContext(self, self._ctx, self.state)\r
4269 self.enterRule(localctx, 86, self.RULE_primary_expression)\r
4270 try:\r
4271 self.state = 619\r
4272 self._errHandler.sync(self)\r
4273 la_ = self._interp.adaptivePredict(self._input,75,self._ctx)\r
4274 if la_ == 1:\r
4275 self.enterOuterAlt(localctx, 1)\r
4276 self.state = 613\r
4277 self.match(CParser.IDENTIFIER)\r
4278 pass\r
4279\r
4280 elif la_ == 2:\r
4281 self.enterOuterAlt(localctx, 2)\r
4282 self.state = 614\r
4283 self.constant()\r
4284 pass\r
4285\r
4286 elif la_ == 3:\r
4287 self.enterOuterAlt(localctx, 3)\r
4288 self.state = 615\r
4289 self.match(CParser.T__37)\r
4290 self.state = 616\r
4291 self.expression()\r
4292 self.state = 617\r
4293 self.match(CParser.T__38)\r
4294 pass\r
4295\r
4296\r
4297 except RecognitionException as re:\r
4298 localctx.exception = re\r
4299 self._errHandler.reportError(self, re)\r
4300 self._errHandler.recover(self, re)\r
4301 finally:\r
4302 self.exitRule()\r
4303 return localctx\r
4304\r
4305 class ConstantContext(ParserRuleContext):\r
4306\r
4307 # @param parent=None Type: ParserRuleContext\r
4308 # @param invokingState=-1 Type: int\r
4309 def __init__(self,parser,parent=None,invokingState=-1):\r
4310 super().__init__(parent, invokingState)\r
4311 self.parser = parser\r
4312\r
4313 def HEX_LITERAL(self):\r
4314 return self.getToken(CParser.HEX_LITERAL, 0)\r
4315\r
4316 def OCTAL_LITERAL(self):\r
4317 return self.getToken(CParser.OCTAL_LITERAL, 0)\r
4318\r
4319 def DECIMAL_LITERAL(self):\r
4320 return self.getToken(CParser.DECIMAL_LITERAL, 0)\r
4321\r
4322 def CHARACTER_LITERAL(self):\r
4323 return self.getToken(CParser.CHARACTER_LITERAL, 0)\r
4324\r
4325 # @param i=None Type: int\r
4326 def IDENTIFIER(self,i=None):\r
4327 if i is None:\r
4328 return self.getTokens(CParser.IDENTIFIER)\r
4329 else:\r
4330 return self.getToken(CParser.IDENTIFIER, i)\r
4331\r
4332 # @param i=None Type: int\r
4333 def STRING_LITERAL(self,i=None):\r
4334 if i is None:\r
4335 return self.getTokens(CParser.STRING_LITERAL)\r
4336 else:\r
4337 return self.getToken(CParser.STRING_LITERAL, i)\r
4338\r
4339 def FLOATING_POINT_LITERAL(self):\r
4340 return self.getToken(CParser.FLOATING_POINT_LITERAL, 0)\r
4341\r
4342 def getRuleIndex(self):\r
4343 return CParser.RULE_constant\r
4344\r
4345 # @param listener Type: ParseTreeListener\r
4346 def enterRule(self,listener):\r
4347 if hasattr( listener, "enterConstant" ):\r
4348 listener.enterConstant(self)\r
4349\r
4350 # @param listener Type: ParseTreeListener\r
4351 def exitRule(self,listener):\r
4352 if hasattr( listener, "exitConstant" ):\r
4353 listener.exitConstant(self)\r
4354\r
4355\r
4356\r
4357\r
4358 def constant(self):\r
4359\r
4360 localctx = CParser.ConstantContext(self, self._ctx, self.state)\r
4361 self.enterRule(localctx, 88, self.RULE_constant)\r
4362 self._la = 0 # Token type\r
4363 try:\r
4364 self.state = 647\r
4365 self._errHandler.sync(self)\r
4366 token = self._input.LA(1)\r
4367 if token in [CParser.HEX_LITERAL]:\r
4368 self.enterOuterAlt(localctx, 1)\r
4369 self.state = 621\r
4370 self.match(CParser.HEX_LITERAL)\r
4371 pass\r
4372 elif token in [CParser.OCTAL_LITERAL]:\r
4373 self.enterOuterAlt(localctx, 2)\r
4374 self.state = 622\r
4375 self.match(CParser.OCTAL_LITERAL)\r
4376 pass\r
4377 elif token in [CParser.DECIMAL_LITERAL]:\r
4378 self.enterOuterAlt(localctx, 3)\r
4379 self.state = 623\r
4380 self.match(CParser.DECIMAL_LITERAL)\r
4381 pass\r
4382 elif token in [CParser.CHARACTER_LITERAL]:\r
4383 self.enterOuterAlt(localctx, 4)\r
4384 self.state = 624\r
4385 self.match(CParser.CHARACTER_LITERAL)\r
4386 pass\r
4387 elif token in [CParser.IDENTIFIER, CParser.STRING_LITERAL]:\r
4388 self.enterOuterAlt(localctx, 5)\r
4389 self.state = 636\r
4390 self._errHandler.sync(self)\r
4391 _alt = 1\r
4392 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
4393 if _alt == 1:\r
4394 self.state = 628\r
4395 self._errHandler.sync(self)\r
4396 _la = self._input.LA(1)\r
4397 while _la==CParser.IDENTIFIER:\r
4398 self.state = 625\r
4399 self.match(CParser.IDENTIFIER)\r
4400 self.state = 630\r
4401 self._errHandler.sync(self)\r
4402 _la = self._input.LA(1)\r
4403\r
4404 self.state = 632\r
4405 self._errHandler.sync(self)\r
4406 _alt = 1\r
4407 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
4408 if _alt == 1:\r
4409 self.state = 631\r
4410 self.match(CParser.STRING_LITERAL)\r
4411\r
4412 else:\r
4413 raise NoViableAltException(self)\r
4414 self.state = 634\r
4415 self._errHandler.sync(self)\r
4416 _alt = self._interp.adaptivePredict(self._input,77,self._ctx)\r
4417\r
4418\r
4419 else:\r
4420 raise NoViableAltException(self)\r
4421 self.state = 638\r
4422 self._errHandler.sync(self)\r
4423 _alt = self._interp.adaptivePredict(self._input,78,self._ctx)\r
4424\r
4425 self.state = 643\r
4426 self._errHandler.sync(self)\r
4427 _la = self._input.LA(1)\r
4428 while _la==CParser.IDENTIFIER:\r
4429 self.state = 640\r
4430 self.match(CParser.IDENTIFIER)\r
4431 self.state = 645\r
4432 self._errHandler.sync(self)\r
4433 _la = self._input.LA(1)\r
4434\r
4435 pass\r
4436 elif token in [CParser.FLOATING_POINT_LITERAL]:\r
4437 self.enterOuterAlt(localctx, 6)\r
4438 self.state = 646\r
4439 self.match(CParser.FLOATING_POINT_LITERAL)\r
4440 pass\r
4441 else:\r
4442 raise NoViableAltException(self)\r
4443\r
4444 except RecognitionException as re:\r
4445 localctx.exception = re\r
4446 self._errHandler.reportError(self, re)\r
4447 self._errHandler.recover(self, re)\r
4448 finally:\r
4449 self.exitRule()\r
4450 return localctx\r
4451\r
4452 class ExpressionContext(ParserRuleContext):\r
4453\r
4454 # @param parent=None Type: ParserRuleContext\r
4455 # @param invokingState=-1 Type: int\r
4456 def __init__(self,parser,parent=None,invokingState=-1):\r
4457 super().__init__(parent, invokingState)\r
4458 self.parser = parser\r
4459\r
4460 # @param i=None Type: int\r
4461 def assignment_expression(self,i=None):\r
4462 if i is None:\r
4463 return self.getTypedRuleContexts(CParser.Assignment_expressionContext)\r
4464 else:\r
4465 return self.getTypedRuleContext(CParser.Assignment_expressionContext,i)\r
4466\r
4467\r
4468 def getRuleIndex(self):\r
4469 return CParser.RULE_expression\r
4470\r
4471 # @param listener Type: ParseTreeListener\r
4472 def enterRule(self,listener):\r
4473 if hasattr( listener, "enterExpression" ):\r
4474 listener.enterExpression(self)\r
4475\r
4476 # @param listener Type: ParseTreeListener\r
4477 def exitRule(self,listener):\r
4478 if hasattr( listener, "exitExpression" ):\r
4479 listener.exitExpression(self)\r
4480\r
4481\r
4482\r
4483\r
4484 def expression(self):\r
4485\r
4486 localctx = CParser.ExpressionContext(self, self._ctx, self.state)\r
4487 self.enterRule(localctx, 90, self.RULE_expression)\r
4488 self._la = 0 # Token type\r
4489 try:\r
4490 self.enterOuterAlt(localctx, 1)\r
4491 self.state = 649\r
4492 self.assignment_expression()\r
4493 self.state = 654\r
4494 self._errHandler.sync(self)\r
4495 _la = self._input.LA(1)\r
4496 while _la==CParser.T__3:\r
4497 self.state = 650\r
4498 self.match(CParser.T__3)\r
4499 self.state = 651\r
4500 self.assignment_expression()\r
4501 self.state = 656\r
4502 self._errHandler.sync(self)\r
4503 _la = self._input.LA(1)\r
4504\r
4505 except RecognitionException as re:\r
4506 localctx.exception = re\r
4507 self._errHandler.reportError(self, re)\r
4508 self._errHandler.recover(self, re)\r
4509 finally:\r
4510 self.exitRule()\r
4511 return localctx\r
4512\r
4513 class Constant_expressionContext(ParserRuleContext):\r
4514\r
4515 # @param parent=None Type: ParserRuleContext\r
4516 # @param invokingState=-1 Type: int\r
4517 def __init__(self,parser,parent=None,invokingState=-1):\r
4518 super().__init__(parent, invokingState)\r
4519 self.parser = parser\r
4520\r
4521 def conditional_expression(self):\r
4522 return self.getTypedRuleContext(CParser.Conditional_expressionContext,0)\r
4523\r
4524\r
4525 def getRuleIndex(self):\r
4526 return CParser.RULE_constant_expression\r
4527\r
4528 # @param listener Type: ParseTreeListener\r
4529 def enterRule(self,listener):\r
4530 if hasattr( listener, "enterConstant_expression" ):\r
4531 listener.enterConstant_expression(self)\r
4532\r
4533 # @param listener Type: ParseTreeListener\r
4534 def exitRule(self,listener):\r
4535 if hasattr( listener, "exitConstant_expression" ):\r
4536 listener.exitConstant_expression(self)\r
4537\r
4538\r
4539\r
4540\r
4541 def constant_expression(self):\r
4542\r
4543 localctx = CParser.Constant_expressionContext(self, self._ctx, self.state)\r
4544 self.enterRule(localctx, 92, self.RULE_constant_expression)\r
4545 try:\r
4546 self.enterOuterAlt(localctx, 1)\r
4547 self.state = 657\r
4548 self.conditional_expression()\r
4549 except RecognitionException as re:\r
4550 localctx.exception = re\r
4551 self._errHandler.reportError(self, re)\r
4552 self._errHandler.recover(self, re)\r
4553 finally:\r
4554 self.exitRule()\r
4555 return localctx\r
4556\r
4557 class Assignment_expressionContext(ParserRuleContext):\r
4558\r
4559 # @param parent=None Type: ParserRuleContext\r
4560 # @param invokingState=-1 Type: int\r
4561 def __init__(self,parser,parent=None,invokingState=-1):\r
4562 super().__init__(parent, invokingState)\r
4563 self.parser = parser\r
4564\r
4565 def lvalue(self):\r
4566 return self.getTypedRuleContext(CParser.LvalueContext,0)\r
4567\r
4568\r
4569 def assignment_operator(self):\r
4570 return self.getTypedRuleContext(CParser.Assignment_operatorContext,0)\r
4571\r
4572\r
4573 def assignment_expression(self):\r
4574 return self.getTypedRuleContext(CParser.Assignment_expressionContext,0)\r
4575\r
4576\r
4577 def conditional_expression(self):\r
4578 return self.getTypedRuleContext(CParser.Conditional_expressionContext,0)\r
4579\r
4580\r
4581 def getRuleIndex(self):\r
4582 return CParser.RULE_assignment_expression\r
4583\r
4584 # @param listener Type: ParseTreeListener\r
4585 def enterRule(self,listener):\r
4586 if hasattr( listener, "enterAssignment_expression" ):\r
4587 listener.enterAssignment_expression(self)\r
4588\r
4589 # @param listener Type: ParseTreeListener\r
4590 def exitRule(self,listener):\r
4591 if hasattr( listener, "exitAssignment_expression" ):\r
4592 listener.exitAssignment_expression(self)\r
4593\r
4594\r
4595\r
4596\r
4597 def assignment_expression(self):\r
4598\r
4599 localctx = CParser.Assignment_expressionContext(self, self._ctx, self.state)\r
4600 self.enterRule(localctx, 94, self.RULE_assignment_expression)\r
4601 try:\r
4602 self.state = 664\r
4603 self._errHandler.sync(self)\r
4604 la_ = self._interp.adaptivePredict(self._input,82,self._ctx)\r
4605 if la_ == 1:\r
4606 self.enterOuterAlt(localctx, 1)\r
4607 self.state = 659\r
4608 self.lvalue()\r
4609 self.state = 660\r
4610 self.assignment_operator()\r
4611 self.state = 661\r
4612 self.assignment_expression()\r
4613 pass\r
4614\r
4615 elif la_ == 2:\r
4616 self.enterOuterAlt(localctx, 2)\r
4617 self.state = 663\r
4618 self.conditional_expression()\r
4619 pass\r
4620\r
4621\r
4622 except RecognitionException as re:\r
4623 localctx.exception = re\r
4624 self._errHandler.reportError(self, re)\r
4625 self._errHandler.recover(self, re)\r
4626 finally:\r
4627 self.exitRule()\r
4628 return localctx\r
4629\r
4630 class LvalueContext(ParserRuleContext):\r
4631\r
4632 # @param parent=None Type: ParserRuleContext\r
4633 # @param invokingState=-1 Type: int\r
4634 def __init__(self,parser,parent=None,invokingState=-1):\r
4635 super().__init__(parent, invokingState)\r
4636 self.parser = parser\r
4637\r
4638 def unary_expression(self):\r
4639 return self.getTypedRuleContext(CParser.Unary_expressionContext,0)\r
4640\r
4641\r
4642 def getRuleIndex(self):\r
4643 return CParser.RULE_lvalue\r
4644\r
4645 # @param listener Type: ParseTreeListener\r
4646 def enterRule(self,listener):\r
4647 if hasattr( listener, "enterLvalue" ):\r
4648 listener.enterLvalue(self)\r
4649\r
4650 # @param listener Type: ParseTreeListener\r
4651 def exitRule(self,listener):\r
4652 if hasattr( listener, "exitLvalue" ):\r
4653 listener.exitLvalue(self)\r
4654\r
4655\r
4656\r
4657\r
4658 def lvalue(self):\r
4659\r
4660 localctx = CParser.LvalueContext(self, self._ctx, self.state)\r
4661 self.enterRule(localctx, 96, self.RULE_lvalue)\r
4662 try:\r
4663 self.enterOuterAlt(localctx, 1)\r
4664 self.state = 666\r
4665 self.unary_expression()\r
4666 except RecognitionException as re:\r
4667 localctx.exception = re\r
4668 self._errHandler.reportError(self, re)\r
4669 self._errHandler.recover(self, re)\r
4670 finally:\r
4671 self.exitRule()\r
4672 return localctx\r
4673\r
4674 class Assignment_operatorContext(ParserRuleContext):\r
4675\r
4676 # @param parent=None Type: ParserRuleContext\r
4677 # @param invokingState=-1 Type: int\r
4678 def __init__(self,parser,parent=None,invokingState=-1):\r
4679 super().__init__(parent, invokingState)\r
4680 self.parser = parser\r
4681\r
4682\r
4683 def getRuleIndex(self):\r
4684 return CParser.RULE_assignment_operator\r
4685\r
4686 # @param listener Type: ParseTreeListener\r
4687 def enterRule(self,listener):\r
4688 if hasattr( listener, "enterAssignment_operator" ):\r
4689 listener.enterAssignment_operator(self)\r
4690\r
4691 # @param listener Type: ParseTreeListener\r
4692 def exitRule(self,listener):\r
4693 if hasattr( listener, "exitAssignment_operator" ):\r
4694 listener.exitAssignment_operator(self)\r
4695\r
4696\r
4697\r
4698\r
4699 def assignment_operator(self):\r
4700\r
4701 localctx = CParser.Assignment_operatorContext(self, self._ctx, self.state)\r
4702 self.enterRule(localctx, 98, self.RULE_assignment_operator)\r
4703 self._la = 0 # Token type\r
4704 try:\r
4705 self.enterOuterAlt(localctx, 1)\r
4706 self.state = 668\r
4707 _la = self._input.LA(1)\r
4708 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)):\r
4709 self._errHandler.recoverInline(self)\r
4710 else:\r
4711 self._errHandler.reportMatch(self)\r
4712 self.consume()\r
4713 except RecognitionException as re:\r
4714 localctx.exception = re\r
4715 self._errHandler.reportError(self, re)\r
4716 self._errHandler.recover(self, re)\r
4717 finally:\r
4718 self.exitRule()\r
4719 return localctx\r
4720\r
4721 class Conditional_expressionContext(ParserRuleContext):\r
4722\r
4723 # @param parent=None Type: ParserRuleContext\r
4724 # @param invokingState=-1 Type: int\r
4725 def __init__(self,parser,parent=None,invokingState=-1):\r
4726 super().__init__(parent, invokingState)\r
4727 self.parser = parser\r
4728 self.e = None # Logical_or_expressionContext\r
4729\r
4730 def logical_or_expression(self):\r
4731 return self.getTypedRuleContext(CParser.Logical_or_expressionContext,0)\r
4732\r
4733\r
4734 def expression(self):\r
4735 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
4736\r
4737\r
4738 def conditional_expression(self):\r
4739 return self.getTypedRuleContext(CParser.Conditional_expressionContext,0)\r
4740\r
4741\r
4742 def getRuleIndex(self):\r
4743 return CParser.RULE_conditional_expression\r
4744\r
4745 # @param listener Type: ParseTreeListener\r
4746 def enterRule(self,listener):\r
4747 if hasattr( listener, "enterConditional_expression" ):\r
4748 listener.enterConditional_expression(self)\r
4749\r
4750 # @param listener Type: ParseTreeListener\r
4751 def exitRule(self,listener):\r
4752 if hasattr( listener, "exitConditional_expression" ):\r
4753 listener.exitConditional_expression(self)\r
4754\r
4755\r
4756\r
4757\r
4758 def conditional_expression(self):\r
4759\r
4760 localctx = CParser.Conditional_expressionContext(self, self._ctx, self.state)\r
4761 self.enterRule(localctx, 100, self.RULE_conditional_expression)\r
4762 self._la = 0 # Token type\r
4763 try:\r
4764 self.enterOuterAlt(localctx, 1)\r
4765 self.state = 670\r
4766 localctx.e = self.logical_or_expression()\r
4767 self.state = 677\r
4768 self._errHandler.sync(self)\r
4769 _la = self._input.LA(1)\r
4770 if _la==CParser.T__65:\r
4771 self.state = 671\r
4772 self.match(CParser.T__65)\r
4773 self.state = 672\r
4774 self.expression()\r
4775 self.state = 673\r
4776 self.match(CParser.T__22)\r
4777 self.state = 674\r
4778 self.conditional_expression()\r
4779 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))))\r
4780\r
4781\r
4782 except RecognitionException as re:\r
4783 localctx.exception = re\r
4784 self._errHandler.reportError(self, re)\r
4785 self._errHandler.recover(self, re)\r
4786 finally:\r
4787 self.exitRule()\r
4788 return localctx\r
4789\r
4790 class Logical_or_expressionContext(ParserRuleContext):\r
4791\r
4792 # @param parent=None Type: ParserRuleContext\r
4793 # @param invokingState=-1 Type: int\r
4794 def __init__(self,parser,parent=None,invokingState=-1):\r
4795 super().__init__(parent, invokingState)\r
4796 self.parser = parser\r
4797\r
4798 # @param i=None Type: int\r
4799 def logical_and_expression(self,i=None):\r
4800 if i is None:\r
4801 return self.getTypedRuleContexts(CParser.Logical_and_expressionContext)\r
4802 else:\r
4803 return self.getTypedRuleContext(CParser.Logical_and_expressionContext,i)\r
4804\r
4805\r
4806 def getRuleIndex(self):\r
4807 return CParser.RULE_logical_or_expression\r
4808\r
4809 # @param listener Type: ParseTreeListener\r
4810 def enterRule(self,listener):\r
4811 if hasattr( listener, "enterLogical_or_expression" ):\r
4812 listener.enterLogical_or_expression(self)\r
4813\r
4814 # @param listener Type: ParseTreeListener\r
4815 def exitRule(self,listener):\r
4816 if hasattr( listener, "exitLogical_or_expression" ):\r
4817 listener.exitLogical_or_expression(self)\r
4818\r
4819\r
4820\r
4821\r
4822 def logical_or_expression(self):\r
4823\r
4824 localctx = CParser.Logical_or_expressionContext(self, self._ctx, self.state)\r
4825 self.enterRule(localctx, 102, self.RULE_logical_or_expression)\r
4826 self._la = 0 # Token type\r
4827 try:\r
4828 self.enterOuterAlt(localctx, 1)\r
4829 self.state = 679\r
4830 self.logical_and_expression()\r
4831 self.state = 684\r
4832 self._errHandler.sync(self)\r
4833 _la = self._input.LA(1)\r
4834 while _la==CParser.T__66:\r
4835 self.state = 680\r
4836 self.match(CParser.T__66)\r
4837 self.state = 681\r
4838 self.logical_and_expression()\r
4839 self.state = 686\r
4840 self._errHandler.sync(self)\r
4841 _la = self._input.LA(1)\r
4842\r
4843 except RecognitionException as re:\r
4844 localctx.exception = re\r
4845 self._errHandler.reportError(self, re)\r
4846 self._errHandler.recover(self, re)\r
4847 finally:\r
4848 self.exitRule()\r
4849 return localctx\r
4850\r
4851 class Logical_and_expressionContext(ParserRuleContext):\r
4852\r
4853 # @param parent=None Type: ParserRuleContext\r
4854 # @param invokingState=-1 Type: int\r
4855 def __init__(self,parser,parent=None,invokingState=-1):\r
4856 super().__init__(parent, invokingState)\r
4857 self.parser = parser\r
4858\r
4859 # @param i=None Type: int\r
4860 def inclusive_or_expression(self,i=None):\r
4861 if i is None:\r
4862 return self.getTypedRuleContexts(CParser.Inclusive_or_expressionContext)\r
4863 else:\r
4864 return self.getTypedRuleContext(CParser.Inclusive_or_expressionContext,i)\r
4865\r
4866\r
4867 def getRuleIndex(self):\r
4868 return CParser.RULE_logical_and_expression\r
4869\r
4870 # @param listener Type: ParseTreeListener\r
4871 def enterRule(self,listener):\r
4872 if hasattr( listener, "enterLogical_and_expression" ):\r
4873 listener.enterLogical_and_expression(self)\r
4874\r
4875 # @param listener Type: ParseTreeListener\r
4876 def exitRule(self,listener):\r
4877 if hasattr( listener, "exitLogical_and_expression" ):\r
4878 listener.exitLogical_and_expression(self)\r
4879\r
4880\r
4881\r
4882\r
4883 def logical_and_expression(self):\r
4884\r
4885 localctx = CParser.Logical_and_expressionContext(self, self._ctx, self.state)\r
4886 self.enterRule(localctx, 104, self.RULE_logical_and_expression)\r
4887 self._la = 0 # Token type\r
4888 try:\r
4889 self.enterOuterAlt(localctx, 1)\r
4890 self.state = 687\r
4891 self.inclusive_or_expression()\r
4892 self.state = 692\r
4893 self._errHandler.sync(self)\r
4894 _la = self._input.LA(1)\r
4895 while _la==CParser.T__67:\r
4896 self.state = 688\r
4897 self.match(CParser.T__67)\r
4898 self.state = 689\r
4899 self.inclusive_or_expression()\r
4900 self.state = 694\r
4901 self._errHandler.sync(self)\r
4902 _la = self._input.LA(1)\r
4903\r
4904 except RecognitionException as re:\r
4905 localctx.exception = re\r
4906 self._errHandler.reportError(self, re)\r
4907 self._errHandler.recover(self, re)\r
4908 finally:\r
4909 self.exitRule()\r
4910 return localctx\r
4911\r
4912 class Inclusive_or_expressionContext(ParserRuleContext):\r
4913\r
4914 # @param parent=None Type: ParserRuleContext\r
4915 # @param invokingState=-1 Type: int\r
4916 def __init__(self,parser,parent=None,invokingState=-1):\r
4917 super().__init__(parent, invokingState)\r
4918 self.parser = parser\r
4919\r
4920 # @param i=None Type: int\r
4921 def exclusive_or_expression(self,i=None):\r
4922 if i is None:\r
4923 return self.getTypedRuleContexts(CParser.Exclusive_or_expressionContext)\r
4924 else:\r
4925 return self.getTypedRuleContext(CParser.Exclusive_or_expressionContext,i)\r
4926\r
4927\r
4928 def getRuleIndex(self):\r
4929 return CParser.RULE_inclusive_or_expression\r
4930\r
4931 # @param listener Type: ParseTreeListener\r
4932 def enterRule(self,listener):\r
4933 if hasattr( listener, "enterInclusive_or_expression" ):\r
4934 listener.enterInclusive_or_expression(self)\r
4935\r
4936 # @param listener Type: ParseTreeListener\r
4937 def exitRule(self,listener):\r
4938 if hasattr( listener, "exitInclusive_or_expression" ):\r
4939 listener.exitInclusive_or_expression(self)\r
4940\r
4941\r
4942\r
4943\r
4944 def inclusive_or_expression(self):\r
4945\r
4946 localctx = CParser.Inclusive_or_expressionContext(self, self._ctx, self.state)\r
4947 self.enterRule(localctx, 106, self.RULE_inclusive_or_expression)\r
4948 self._la = 0 # Token type\r
4949 try:\r
4950 self.enterOuterAlt(localctx, 1)\r
4951 self.state = 695\r
4952 self.exclusive_or_expression()\r
4953 self.state = 700\r
4954 self._errHandler.sync(self)\r
4955 _la = self._input.LA(1)\r
4956 while _la==CParser.T__68:\r
4957 self.state = 696\r
4958 self.match(CParser.T__68)\r
4959 self.state = 697\r
4960 self.exclusive_or_expression()\r
4961 self.state = 702\r
4962 self._errHandler.sync(self)\r
4963 _la = self._input.LA(1)\r
4964\r
4965 except RecognitionException as re:\r
4966 localctx.exception = re\r
4967 self._errHandler.reportError(self, re)\r
4968 self._errHandler.recover(self, re)\r
4969 finally:\r
4970 self.exitRule()\r
4971 return localctx\r
4972\r
4973 class Exclusive_or_expressionContext(ParserRuleContext):\r
4974\r
4975 # @param parent=None Type: ParserRuleContext\r
4976 # @param invokingState=-1 Type: int\r
4977 def __init__(self,parser,parent=None,invokingState=-1):\r
4978 super().__init__(parent, invokingState)\r
4979 self.parser = parser\r
4980\r
4981 # @param i=None Type: int\r
4982 def and_expression(self,i=None):\r
4983 if i is None:\r
4984 return self.getTypedRuleContexts(CParser.And_expressionContext)\r
4985 else:\r
4986 return self.getTypedRuleContext(CParser.And_expressionContext,i)\r
4987\r
4988\r
4989 def getRuleIndex(self):\r
4990 return CParser.RULE_exclusive_or_expression\r
4991\r
4992 # @param listener Type: ParseTreeListener\r
4993 def enterRule(self,listener):\r
4994 if hasattr( listener, "enterExclusive_or_expression" ):\r
4995 listener.enterExclusive_or_expression(self)\r
4996\r
4997 # @param listener Type: ParseTreeListener\r
4998 def exitRule(self,listener):\r
4999 if hasattr( listener, "exitExclusive_or_expression" ):\r
5000 listener.exitExclusive_or_expression(self)\r
5001\r
5002\r
5003\r
5004\r
5005 def exclusive_or_expression(self):\r
5006\r
5007 localctx = CParser.Exclusive_or_expressionContext(self, self._ctx, self.state)\r
5008 self.enterRule(localctx, 108, self.RULE_exclusive_or_expression)\r
5009 self._la = 0 # Token type\r
5010 try:\r
5011 self.enterOuterAlt(localctx, 1)\r
5012 self.state = 703\r
5013 self.and_expression()\r
5014 self.state = 708\r
5015 self._errHandler.sync(self)\r
5016 _la = self._input.LA(1)\r
5017 while _la==CParser.T__69:\r
5018 self.state = 704\r
5019 self.match(CParser.T__69)\r
5020 self.state = 705\r
5021 self.and_expression()\r
5022 self.state = 710\r
5023 self._errHandler.sync(self)\r
5024 _la = self._input.LA(1)\r
5025\r
5026 except RecognitionException as re:\r
5027 localctx.exception = re\r
5028 self._errHandler.reportError(self, re)\r
5029 self._errHandler.recover(self, re)\r
5030 finally:\r
5031 self.exitRule()\r
5032 return localctx\r
5033\r
5034 class And_expressionContext(ParserRuleContext):\r
5035\r
5036 # @param parent=None Type: ParserRuleContext\r
5037 # @param invokingState=-1 Type: int\r
5038 def __init__(self,parser,parent=None,invokingState=-1):\r
5039 super().__init__(parent, invokingState)\r
5040 self.parser = parser\r
5041\r
5042 # @param i=None Type: int\r
5043 def equality_expression(self,i=None):\r
5044 if i is None:\r
5045 return self.getTypedRuleContexts(CParser.Equality_expressionContext)\r
5046 else:\r
5047 return self.getTypedRuleContext(CParser.Equality_expressionContext,i)\r
5048\r
5049\r
5050 def getRuleIndex(self):\r
5051 return CParser.RULE_and_expression\r
5052\r
5053 # @param listener Type: ParseTreeListener\r
5054 def enterRule(self,listener):\r
5055 if hasattr( listener, "enterAnd_expression" ):\r
5056 listener.enterAnd_expression(self)\r
5057\r
5058 # @param listener Type: ParseTreeListener\r
5059 def exitRule(self,listener):\r
5060 if hasattr( listener, "exitAnd_expression" ):\r
5061 listener.exitAnd_expression(self)\r
5062\r
5063\r
5064\r
5065\r
5066 def and_expression(self):\r
5067\r
5068 localctx = CParser.And_expressionContext(self, self._ctx, self.state)\r
5069 self.enterRule(localctx, 110, self.RULE_and_expression)\r
5070 self._la = 0 # Token type\r
5071 try:\r
5072 self.enterOuterAlt(localctx, 1)\r
5073 self.state = 711\r
5074 self.equality_expression()\r
5075 self.state = 716\r
5076 self._errHandler.sync(self)\r
5077 _la = self._input.LA(1)\r
5078 while _la==CParser.T__52:\r
5079 self.state = 712\r
5080 self.match(CParser.T__52)\r
5081 self.state = 713\r
5082 self.equality_expression()\r
5083 self.state = 718\r
5084 self._errHandler.sync(self)\r
5085 _la = self._input.LA(1)\r
5086\r
5087 except RecognitionException as re:\r
5088 localctx.exception = re\r
5089 self._errHandler.reportError(self, re)\r
5090 self._errHandler.recover(self, re)\r
5091 finally:\r
5092 self.exitRule()\r
5093 return localctx\r
5094\r
5095 class Equality_expressionContext(ParserRuleContext):\r
5096\r
5097 # @param parent=None Type: ParserRuleContext\r
5098 # @param invokingState=-1 Type: int\r
5099 def __init__(self,parser,parent=None,invokingState=-1):\r
5100 super().__init__(parent, invokingState)\r
5101 self.parser = parser\r
5102\r
5103 # @param i=None Type: int\r
5104 def relational_expression(self,i=None):\r
5105 if i is None:\r
5106 return self.getTypedRuleContexts(CParser.Relational_expressionContext)\r
5107 else:\r
5108 return self.getTypedRuleContext(CParser.Relational_expressionContext,i)\r
5109\r
5110\r
5111 def getRuleIndex(self):\r
5112 return CParser.RULE_equality_expression\r
5113\r
5114 # @param listener Type: ParseTreeListener\r
5115 def enterRule(self,listener):\r
5116 if hasattr( listener, "enterEquality_expression" ):\r
5117 listener.enterEquality_expression(self)\r
5118\r
5119 # @param listener Type: ParseTreeListener\r
5120 def exitRule(self,listener):\r
5121 if hasattr( listener, "exitEquality_expression" ):\r
5122 listener.exitEquality_expression(self)\r
5123\r
5124\r
5125\r
5126\r
5127 def equality_expression(self):\r
5128\r
5129 localctx = CParser.Equality_expressionContext(self, self._ctx, self.state)\r
5130 self.enterRule(localctx, 112, self.RULE_equality_expression)\r
5131 self._la = 0 # Token type\r
5132 try:\r
5133 self.enterOuterAlt(localctx, 1)\r
5134 self.state = 719\r
5135 self.relational_expression()\r
5136 self.state = 724\r
5137 self._errHandler.sync(self)\r
5138 _la = self._input.LA(1)\r
5139 while _la==CParser.T__70 or _la==CParser.T__71:\r
5140 self.state = 720\r
5141 _la = self._input.LA(1)\r
5142 if not(_la==CParser.T__70 or _la==CParser.T__71):\r
5143 self._errHandler.recoverInline(self)\r
5144 else:\r
5145 self._errHandler.reportMatch(self)\r
5146 self.consume()\r
5147 self.state = 721\r
5148 self.relational_expression()\r
5149 self.state = 726\r
5150 self._errHandler.sync(self)\r
5151 _la = self._input.LA(1)\r
5152\r
5153 except RecognitionException as re:\r
5154 localctx.exception = re\r
5155 self._errHandler.reportError(self, re)\r
5156 self._errHandler.recover(self, re)\r
5157 finally:\r
5158 self.exitRule()\r
5159 return localctx\r
5160\r
5161 class Relational_expressionContext(ParserRuleContext):\r
5162\r
5163 # @param parent=None Type: ParserRuleContext\r
5164 # @param invokingState=-1 Type: int\r
5165 def __init__(self,parser,parent=None,invokingState=-1):\r
5166 super().__init__(parent, invokingState)\r
5167 self.parser = parser\r
5168\r
5169 # @param i=None Type: int\r
5170 def shift_expression(self,i=None):\r
5171 if i is None:\r
5172 return self.getTypedRuleContexts(CParser.Shift_expressionContext)\r
5173 else:\r
5174 return self.getTypedRuleContext(CParser.Shift_expressionContext,i)\r
5175\r
5176\r
5177 def getRuleIndex(self):\r
5178 return CParser.RULE_relational_expression\r
5179\r
5180 # @param listener Type: ParseTreeListener\r
5181 def enterRule(self,listener):\r
5182 if hasattr( listener, "enterRelational_expression" ):\r
5183 listener.enterRelational_expression(self)\r
5184\r
5185 # @param listener Type: ParseTreeListener\r
5186 def exitRule(self,listener):\r
5187 if hasattr( listener, "exitRelational_expression" ):\r
5188 listener.exitRelational_expression(self)\r
5189\r
5190\r
5191\r
5192\r
5193 def relational_expression(self):\r
5194\r
5195 localctx = CParser.Relational_expressionContext(self, self._ctx, self.state)\r
5196 self.enterRule(localctx, 114, self.RULE_relational_expression)\r
5197 self._la = 0 # Token type\r
5198 try:\r
5199 self.enterOuterAlt(localctx, 1)\r
5200 self.state = 727\r
5201 self.shift_expression()\r
5202 self.state = 732\r
5203 self._errHandler.sync(self)\r
5204 _la = self._input.LA(1)\r
5205 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):\r
5206 self.state = 728\r
5207 _la = self._input.LA(1)\r
5208 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)):\r
5209 self._errHandler.recoverInline(self)\r
5210 else:\r
5211 self._errHandler.reportMatch(self)\r
5212 self.consume()\r
5213 self.state = 729\r
5214 self.shift_expression()\r
5215 self.state = 734\r
5216 self._errHandler.sync(self)\r
5217 _la = self._input.LA(1)\r
5218\r
5219 except RecognitionException as re:\r
5220 localctx.exception = re\r
5221 self._errHandler.reportError(self, re)\r
5222 self._errHandler.recover(self, re)\r
5223 finally:\r
5224 self.exitRule()\r
5225 return localctx\r
5226\r
5227 class Shift_expressionContext(ParserRuleContext):\r
5228\r
5229 # @param parent=None Type: ParserRuleContext\r
5230 # @param invokingState=-1 Type: int\r
5231 def __init__(self,parser,parent=None,invokingState=-1):\r
5232 super().__init__(parent, invokingState)\r
5233 self.parser = parser\r
5234\r
5235 # @param i=None Type: int\r
5236 def additive_expression(self,i=None):\r
5237 if i is None:\r
5238 return self.getTypedRuleContexts(CParser.Additive_expressionContext)\r
5239 else:\r
5240 return self.getTypedRuleContext(CParser.Additive_expressionContext,i)\r
5241\r
5242\r
5243 def getRuleIndex(self):\r
5244 return CParser.RULE_shift_expression\r
5245\r
5246 # @param listener Type: ParseTreeListener\r
5247 def enterRule(self,listener):\r
5248 if hasattr( listener, "enterShift_expression" ):\r
5249 listener.enterShift_expression(self)\r
5250\r
5251 # @param listener Type: ParseTreeListener\r
5252 def exitRule(self,listener):\r
5253 if hasattr( listener, "exitShift_expression" ):\r
5254 listener.exitShift_expression(self)\r
5255\r
5256\r
5257\r
5258\r
5259 def shift_expression(self):\r
5260\r
5261 localctx = CParser.Shift_expressionContext(self, self._ctx, self.state)\r
5262 self.enterRule(localctx, 116, self.RULE_shift_expression)\r
5263 self._la = 0 # Token type\r
5264 try:\r
5265 self.enterOuterAlt(localctx, 1)\r
5266 self.state = 735\r
5267 self.additive_expression()\r
5268 self.state = 740\r
5269 self._errHandler.sync(self)\r
5270 _la = self._input.LA(1)\r
5271 while _la==CParser.T__76 or _la==CParser.T__77:\r
5272 self.state = 736\r
5273 _la = self._input.LA(1)\r
5274 if not(_la==CParser.T__76 or _la==CParser.T__77):\r
5275 self._errHandler.recoverInline(self)\r
5276 else:\r
5277 self._errHandler.reportMatch(self)\r
5278 self.consume()\r
5279 self.state = 737\r
5280 self.additive_expression()\r
5281 self.state = 742\r
5282 self._errHandler.sync(self)\r
5283 _la = self._input.LA(1)\r
5284\r
5285 except RecognitionException as re:\r
5286 localctx.exception = re\r
5287 self._errHandler.reportError(self, re)\r
5288 self._errHandler.recover(self, re)\r
5289 finally:\r
5290 self.exitRule()\r
5291 return localctx\r
5292\r
5293 class StatementContext(ParserRuleContext):\r
5294\r
5295 # @param parent=None Type: ParserRuleContext\r
5296 # @param invokingState=-1 Type: int\r
5297 def __init__(self,parser,parent=None,invokingState=-1):\r
5298 super().__init__(parent, invokingState)\r
5299 self.parser = parser\r
5300\r
5301 def labeled_statement(self):\r
5302 return self.getTypedRuleContext(CParser.Labeled_statementContext,0)\r
5303\r
5304\r
5305 def compound_statement(self):\r
5306 return self.getTypedRuleContext(CParser.Compound_statementContext,0)\r
5307\r
5308\r
5309 def expression_statement(self):\r
5310 return self.getTypedRuleContext(CParser.Expression_statementContext,0)\r
5311\r
5312\r
5313 def selection_statement(self):\r
5314 return self.getTypedRuleContext(CParser.Selection_statementContext,0)\r
5315\r
5316\r
5317 def iteration_statement(self):\r
5318 return self.getTypedRuleContext(CParser.Iteration_statementContext,0)\r
5319\r
5320\r
5321 def jump_statement(self):\r
5322 return self.getTypedRuleContext(CParser.Jump_statementContext,0)\r
5323\r
5324\r
5325 def macro_statement(self):\r
5326 return self.getTypedRuleContext(CParser.Macro_statementContext,0)\r
5327\r
5328\r
5329 def asm2_statement(self):\r
5330 return self.getTypedRuleContext(CParser.Asm2_statementContext,0)\r
5331\r
5332\r
5333 def asm1_statement(self):\r
5334 return self.getTypedRuleContext(CParser.Asm1_statementContext,0)\r
5335\r
5336\r
5337 def asm_statement(self):\r
5338 return self.getTypedRuleContext(CParser.Asm_statementContext,0)\r
5339\r
5340\r
5341 def declaration(self):\r
5342 return self.getTypedRuleContext(CParser.DeclarationContext,0)\r
5343\r
5344\r
5345 def getRuleIndex(self):\r
5346 return CParser.RULE_statement\r
5347\r
5348 # @param listener Type: ParseTreeListener\r
5349 def enterRule(self,listener):\r
5350 if hasattr( listener, "enterStatement" ):\r
5351 listener.enterStatement(self)\r
5352\r
5353 # @param listener Type: ParseTreeListener\r
5354 def exitRule(self,listener):\r
5355 if hasattr( listener, "exitStatement" ):\r
5356 listener.exitStatement(self)\r
5357\r
5358\r
5359\r
5360\r
5361 def statement(self):\r
5362\r
5363 localctx = CParser.StatementContext(self, self._ctx, self.state)\r
5364 self.enterRule(localctx, 118, self.RULE_statement)\r
5365 try:\r
5366 self.state = 754\r
5367 self._errHandler.sync(self)\r
5368 la_ = self._interp.adaptivePredict(self._input,92,self._ctx)\r
5369 if la_ == 1:\r
5370 self.enterOuterAlt(localctx, 1)\r
5371 self.state = 743\r
5372 self.labeled_statement()\r
5373 pass\r
5374\r
5375 elif la_ == 2:\r
5376 self.enterOuterAlt(localctx, 2)\r
5377 self.state = 744\r
5378 self.compound_statement()\r
5379 pass\r
5380\r
5381 elif la_ == 3:\r
5382 self.enterOuterAlt(localctx, 3)\r
5383 self.state = 745\r
5384 self.expression_statement()\r
5385 pass\r
5386\r
5387 elif la_ == 4:\r
5388 self.enterOuterAlt(localctx, 4)\r
5389 self.state = 746\r
5390 self.selection_statement()\r
5391 pass\r
5392\r
5393 elif la_ == 5:\r
5394 self.enterOuterAlt(localctx, 5)\r
5395 self.state = 747\r
5396 self.iteration_statement()\r
5397 pass\r
5398\r
5399 elif la_ == 6:\r
5400 self.enterOuterAlt(localctx, 6)\r
5401 self.state = 748\r
5402 self.jump_statement()\r
5403 pass\r
5404\r
5405 elif la_ == 7:\r
5406 self.enterOuterAlt(localctx, 7)\r
5407 self.state = 749\r
5408 self.macro_statement()\r
5409 pass\r
5410\r
5411 elif la_ == 8:\r
5412 self.enterOuterAlt(localctx, 8)\r
5413 self.state = 750\r
5414 self.asm2_statement()\r
5415 pass\r
5416\r
5417 elif la_ == 9:\r
5418 self.enterOuterAlt(localctx, 9)\r
5419 self.state = 751\r
5420 self.asm1_statement()\r
5421 pass\r
5422\r
5423 elif la_ == 10:\r
5424 self.enterOuterAlt(localctx, 10)\r
5425 self.state = 752\r
5426 self.asm_statement()\r
5427 pass\r
5428\r
5429 elif la_ == 11:\r
5430 self.enterOuterAlt(localctx, 11)\r
5431 self.state = 753\r
5432 self.declaration()\r
5433 pass\r
5434\r
5435\r
5436 except RecognitionException as re:\r
5437 localctx.exception = re\r
5438 self._errHandler.reportError(self, re)\r
5439 self._errHandler.recover(self, re)\r
5440 finally:\r
5441 self.exitRule()\r
5442 return localctx\r
5443\r
5444 class Asm2_statementContext(ParserRuleContext):\r
5445\r
5446 # @param parent=None Type: ParserRuleContext\r
5447 # @param invokingState=-1 Type: int\r
5448 def __init__(self,parser,parent=None,invokingState=-1):\r
5449 super().__init__(parent, invokingState)\r
5450 self.parser = parser\r
5451\r
5452 def IDENTIFIER(self):\r
5453 return self.getToken(CParser.IDENTIFIER, 0)\r
5454\r
5455 def getRuleIndex(self):\r
5456 return CParser.RULE_asm2_statement\r
5457\r
5458 # @param listener Type: ParseTreeListener\r
5459 def enterRule(self,listener):\r
5460 if hasattr( listener, "enterAsm2_statement" ):\r
5461 listener.enterAsm2_statement(self)\r
5462\r
5463 # @param listener Type: ParseTreeListener\r
5464 def exitRule(self,listener):\r
5465 if hasattr( listener, "exitAsm2_statement" ):\r
5466 listener.exitAsm2_statement(self)\r
5467\r
5468\r
5469\r
5470\r
5471 def asm2_statement(self):\r
5472\r
5473 localctx = CParser.Asm2_statementContext(self, self._ctx, self.state)\r
5474 self.enterRule(localctx, 120, self.RULE_asm2_statement)\r
5475 self._la = 0 # Token type\r
5476 try:\r
5477 self.enterOuterAlt(localctx, 1)\r
5478 self.state = 757\r
5479 self._errHandler.sync(self)\r
5480 _la = self._input.LA(1)\r
5481 if _la==CParser.T__78:\r
5482 self.state = 756\r
5483 self.match(CParser.T__78)\r
5484\r
5485\r
5486 self.state = 759\r
5487 self.match(CParser.IDENTIFIER)\r
5488 self.state = 760\r
5489 self.match(CParser.T__37)\r
5490 self.state = 764\r
5491 self._errHandler.sync(self)\r
5492 _alt = self._interp.adaptivePredict(self._input,94,self._ctx)\r
5493 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5494 if _alt==1:\r
5495 self.state = 761\r
5496 _la = self._input.LA(1)\r
5497 if _la <= 0 or _la==CParser.T__1:\r
5498 self._errHandler.recoverInline(self)\r
5499 else:\r
5500 self._errHandler.reportMatch(self)\r
5501 self.consume()\r
5502 self.state = 766\r
5503 self._errHandler.sync(self)\r
5504 _alt = self._interp.adaptivePredict(self._input,94,self._ctx)\r
5505\r
5506 self.state = 767\r
5507 self.match(CParser.T__38)\r
5508 self.state = 768\r
5509 self.match(CParser.T__1)\r
5510 except RecognitionException as re:\r
5511 localctx.exception = re\r
5512 self._errHandler.reportError(self, re)\r
5513 self._errHandler.recover(self, re)\r
5514 finally:\r
5515 self.exitRule()\r
5516 return localctx\r
5517\r
5518 class Asm1_statementContext(ParserRuleContext):\r
5519\r
5520 # @param parent=None Type: ParserRuleContext\r
5521 # @param invokingState=-1 Type: int\r
5522 def __init__(self,parser,parent=None,invokingState=-1):\r
5523 super().__init__(parent, invokingState)\r
5524 self.parser = parser\r
5525\r
5526\r
5527 def getRuleIndex(self):\r
5528 return CParser.RULE_asm1_statement\r
5529\r
5530 # @param listener Type: ParseTreeListener\r
5531 def enterRule(self,listener):\r
5532 if hasattr( listener, "enterAsm1_statement" ):\r
5533 listener.enterAsm1_statement(self)\r
5534\r
5535 # @param listener Type: ParseTreeListener\r
5536 def exitRule(self,listener):\r
5537 if hasattr( listener, "exitAsm1_statement" ):\r
5538 listener.exitAsm1_statement(self)\r
5539\r
5540\r
5541\r
5542\r
5543 def asm1_statement(self):\r
5544\r
5545 localctx = CParser.Asm1_statementContext(self, self._ctx, self.state)\r
5546 self.enterRule(localctx, 122, self.RULE_asm1_statement)\r
5547 self._la = 0 # Token type\r
5548 try:\r
5549 self.enterOuterAlt(localctx, 1)\r
5550 self.state = 770\r
5551 self.match(CParser.T__79)\r
5552 self.state = 771\r
5553 self.match(CParser.T__0)\r
5554 self.state = 775\r
5555 self._errHandler.sync(self)\r
5556 _la = self._input.LA(1)\r
5557 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):\r
5558 self.state = 772\r
5559 _la = self._input.LA(1)\r
5560 if _la <= 0 or _la==CParser.T__19:\r
5561 self._errHandler.recoverInline(self)\r
5562 else:\r
5563 self._errHandler.reportMatch(self)\r
5564 self.consume()\r
5565 self.state = 777\r
5566 self._errHandler.sync(self)\r
5567 _la = self._input.LA(1)\r
5568\r
5569 self.state = 778\r
5570 self.match(CParser.T__19)\r
5571 except RecognitionException as re:\r
5572 localctx.exception = re\r
5573 self._errHandler.reportError(self, re)\r
5574 self._errHandler.recover(self, re)\r
5575 finally:\r
5576 self.exitRule()\r
5577 return localctx\r
5578\r
5579 class Asm_statementContext(ParserRuleContext):\r
5580\r
5581 # @param parent=None Type: ParserRuleContext\r
5582 # @param invokingState=-1 Type: int\r
5583 def __init__(self,parser,parent=None,invokingState=-1):\r
5584 super().__init__(parent, invokingState)\r
5585 self.parser = parser\r
5586\r
5587\r
5588 def getRuleIndex(self):\r
5589 return CParser.RULE_asm_statement\r
5590\r
5591 # @param listener Type: ParseTreeListener\r
5592 def enterRule(self,listener):\r
5593 if hasattr( listener, "enterAsm_statement" ):\r
5594 listener.enterAsm_statement(self)\r
5595\r
5596 # @param listener Type: ParseTreeListener\r
5597 def exitRule(self,listener):\r
5598 if hasattr( listener, "exitAsm_statement" ):\r
5599 listener.exitAsm_statement(self)\r
5600\r
5601\r
5602\r
5603\r
5604 def asm_statement(self):\r
5605\r
5606 localctx = CParser.Asm_statementContext(self, self._ctx, self.state)\r
5607 self.enterRule(localctx, 124, self.RULE_asm_statement)\r
5608 self._la = 0 # Token type\r
5609 try:\r
5610 self.enterOuterAlt(localctx, 1)\r
5611 self.state = 780\r
5612 self.match(CParser.T__80)\r
5613 self.state = 781\r
5614 self.match(CParser.T__0)\r
5615 self.state = 785\r
5616 self._errHandler.sync(self)\r
5617 _la = self._input.LA(1)\r
5618 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):\r
5619 self.state = 782\r
5620 _la = self._input.LA(1)\r
5621 if _la <= 0 or _la==CParser.T__19:\r
5622 self._errHandler.recoverInline(self)\r
5623 else:\r
5624 self._errHandler.reportMatch(self)\r
5625 self.consume()\r
5626 self.state = 787\r
5627 self._errHandler.sync(self)\r
5628 _la = self._input.LA(1)\r
5629\r
5630 self.state = 788\r
5631 self.match(CParser.T__19)\r
5632 except RecognitionException as re:\r
5633 localctx.exception = re\r
5634 self._errHandler.reportError(self, re)\r
5635 self._errHandler.recover(self, re)\r
5636 finally:\r
5637 self.exitRule()\r
5638 return localctx\r
5639\r
5640 class Macro_statementContext(ParserRuleContext):\r
5641\r
5642 # @param parent=None Type: ParserRuleContext\r
5643 # @param invokingState=-1 Type: int\r
5644 def __init__(self,parser,parent=None,invokingState=-1):\r
5645 super().__init__(parent, invokingState)\r
5646 self.parser = parser\r
5647\r
5648 def IDENTIFIER(self):\r
5649 return self.getToken(CParser.IDENTIFIER, 0)\r
5650\r
5651 # @param i=None Type: int\r
5652 def declaration(self,i=None):\r
5653 if i is None:\r
5654 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
5655 else:\r
5656 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
5657\r
5658\r
5659 def statement_list(self):\r
5660 return self.getTypedRuleContext(CParser.Statement_listContext,0)\r
5661\r
5662\r
5663 def expression(self):\r
5664 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
5665\r
5666\r
5667 def getRuleIndex(self):\r
5668 return CParser.RULE_macro_statement\r
5669\r
5670 # @param listener Type: ParseTreeListener\r
5671 def enterRule(self,listener):\r
5672 if hasattr( listener, "enterMacro_statement" ):\r
5673 listener.enterMacro_statement(self)\r
5674\r
5675 # @param listener Type: ParseTreeListener\r
5676 def exitRule(self,listener):\r
5677 if hasattr( listener, "exitMacro_statement" ):\r
5678 listener.exitMacro_statement(self)\r
5679\r
5680\r
5681\r
5682\r
5683 def macro_statement(self):\r
5684\r
5685 localctx = CParser.Macro_statementContext(self, self._ctx, self.state)\r
5686 self.enterRule(localctx, 126, self.RULE_macro_statement)\r
5687 self._la = 0 # Token type\r
5688 try:\r
5689 self.enterOuterAlt(localctx, 1)\r
5690 self.state = 790\r
5691 self.match(CParser.IDENTIFIER)\r
5692 self.state = 791\r
5693 self.match(CParser.T__37)\r
5694 self.state = 795\r
5695 self._errHandler.sync(self)\r
5696 _alt = self._interp.adaptivePredict(self._input,97,self._ctx)\r
5697 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5698 if _alt==1:\r
5699 self.state = 792\r
5700 self.declaration()\r
5701 self.state = 797\r
5702 self._errHandler.sync(self)\r
5703 _alt = self._interp.adaptivePredict(self._input,97,self._ctx)\r
5704\r
5705 self.state = 799\r
5706 self._errHandler.sync(self)\r
5707 la_ = self._interp.adaptivePredict(self._input,98,self._ctx)\r
5708 if la_ == 1:\r
5709 self.state = 798\r
5710 self.statement_list()\r
5711\r
5712\r
5713 self.state = 802\r
5714 self._errHandler.sync(self)\r
5715 _la = self._input.LA(1)\r
5716 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):\r
5717 self.state = 801\r
5718 self.expression()\r
5719\r
5720\r
5721 self.state = 804\r
5722 self.match(CParser.T__38)\r
5723 except RecognitionException as re:\r
5724 localctx.exception = re\r
5725 self._errHandler.reportError(self, re)\r
5726 self._errHandler.recover(self, re)\r
5727 finally:\r
5728 self.exitRule()\r
5729 return localctx\r
5730\r
5731 class Labeled_statementContext(ParserRuleContext):\r
5732\r
5733 # @param parent=None Type: ParserRuleContext\r
5734 # @param invokingState=-1 Type: int\r
5735 def __init__(self,parser,parent=None,invokingState=-1):\r
5736 super().__init__(parent, invokingState)\r
5737 self.parser = parser\r
5738\r
5739 def IDENTIFIER(self):\r
5740 return self.getToken(CParser.IDENTIFIER, 0)\r
5741\r
5742 def statement(self):\r
5743 return self.getTypedRuleContext(CParser.StatementContext,0)\r
5744\r
5745\r
5746 def constant_expression(self):\r
5747 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
5748\r
5749\r
5750 def getRuleIndex(self):\r
5751 return CParser.RULE_labeled_statement\r
5752\r
5753 # @param listener Type: ParseTreeListener\r
5754 def enterRule(self,listener):\r
5755 if hasattr( listener, "enterLabeled_statement" ):\r
5756 listener.enterLabeled_statement(self)\r
5757\r
5758 # @param listener Type: ParseTreeListener\r
5759 def exitRule(self,listener):\r
5760 if hasattr( listener, "exitLabeled_statement" ):\r
5761 listener.exitLabeled_statement(self)\r
5762\r
5763\r
5764\r
5765\r
5766 def labeled_statement(self):\r
5767\r
5768 localctx = CParser.Labeled_statementContext(self, self._ctx, self.state)\r
5769 self.enterRule(localctx, 128, self.RULE_labeled_statement)\r
5770 try:\r
5771 self.state = 817\r
5772 self._errHandler.sync(self)\r
5773 token = self._input.LA(1)\r
5774 if token in [CParser.IDENTIFIER]:\r
5775 self.enterOuterAlt(localctx, 1)\r
5776 self.state = 806\r
5777 self.match(CParser.IDENTIFIER)\r
5778 self.state = 807\r
5779 self.match(CParser.T__22)\r
5780 self.state = 808\r
5781 self.statement()\r
5782 pass\r
5783 elif token in [CParser.T__81]:\r
5784 self.enterOuterAlt(localctx, 2)\r
5785 self.state = 809\r
5786 self.match(CParser.T__81)\r
5787 self.state = 810\r
5788 self.constant_expression()\r
5789 self.state = 811\r
5790 self.match(CParser.T__22)\r
5791 self.state = 812\r
5792 self.statement()\r
5793 pass\r
5794 elif token in [CParser.T__82]:\r
5795 self.enterOuterAlt(localctx, 3)\r
5796 self.state = 814\r
5797 self.match(CParser.T__82)\r
5798 self.state = 815\r
5799 self.match(CParser.T__22)\r
5800 self.state = 816\r
5801 self.statement()\r
5802 pass\r
5803 else:\r
5804 raise NoViableAltException(self)\r
5805\r
5806 except RecognitionException as re:\r
5807 localctx.exception = re\r
5808 self._errHandler.reportError(self, re)\r
5809 self._errHandler.recover(self, re)\r
5810 finally:\r
5811 self.exitRule()\r
5812 return localctx\r
5813\r
5814 class Compound_statementContext(ParserRuleContext):\r
5815\r
5816 # @param parent=None Type: ParserRuleContext\r
5817 # @param invokingState=-1 Type: int\r
5818 def __init__(self,parser,parent=None,invokingState=-1):\r
5819 super().__init__(parent, invokingState)\r
5820 self.parser = parser\r
5821\r
5822 # @param i=None Type: int\r
5823 def declaration(self,i=None):\r
5824 if i is None:\r
5825 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
5826 else:\r
5827 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
5828\r
5829\r
5830 def statement_list(self):\r
5831 return self.getTypedRuleContext(CParser.Statement_listContext,0)\r
5832\r
5833\r
5834 def getRuleIndex(self):\r
5835 return CParser.RULE_compound_statement\r
5836\r
5837 # @param listener Type: ParseTreeListener\r
5838 def enterRule(self,listener):\r
5839 if hasattr( listener, "enterCompound_statement" ):\r
5840 listener.enterCompound_statement(self)\r
5841\r
5842 # @param listener Type: ParseTreeListener\r
5843 def exitRule(self,listener):\r
5844 if hasattr( listener, "exitCompound_statement" ):\r
5845 listener.exitCompound_statement(self)\r
5846\r
5847\r
5848\r
5849\r
5850 def compound_statement(self):\r
5851\r
5852 localctx = CParser.Compound_statementContext(self, self._ctx, self.state)\r
5853 self.enterRule(localctx, 130, self.RULE_compound_statement)\r
5854 self._la = 0 # Token type\r
5855 try:\r
5856 self.enterOuterAlt(localctx, 1)\r
5857 self.state = 819\r
5858 self.match(CParser.T__0)\r
5859 self.state = 823\r
5860 self._errHandler.sync(self)\r
5861 _alt = self._interp.adaptivePredict(self._input,101,self._ctx)\r
5862 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5863 if _alt==1:\r
5864 self.state = 820\r
5865 self.declaration()\r
5866 self.state = 825\r
5867 self._errHandler.sync(self)\r
5868 _alt = self._interp.adaptivePredict(self._input,101,self._ctx)\r
5869\r
5870 self.state = 827\r
5871 self._errHandler.sync(self)\r
5872 _la = self._input.LA(1)\r
5873 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):\r
5874 self.state = 826\r
5875 self.statement_list()\r
5876\r
5877\r
5878 self.state = 829\r
5879 self.match(CParser.T__19)\r
5880 except RecognitionException as re:\r
5881 localctx.exception = re\r
5882 self._errHandler.reportError(self, re)\r
5883 self._errHandler.recover(self, re)\r
5884 finally:\r
5885 self.exitRule()\r
5886 return localctx\r
5887\r
5888 class Statement_listContext(ParserRuleContext):\r
5889\r
5890 # @param parent=None Type: ParserRuleContext\r
5891 # @param invokingState=-1 Type: int\r
5892 def __init__(self,parser,parent=None,invokingState=-1):\r
5893 super().__init__(parent, invokingState)\r
5894 self.parser = parser\r
5895\r
5896 # @param i=None Type: int\r
5897 def statement(self,i=None):\r
5898 if i is None:\r
5899 return self.getTypedRuleContexts(CParser.StatementContext)\r
5900 else:\r
5901 return self.getTypedRuleContext(CParser.StatementContext,i)\r
5902\r
5903\r
5904 def getRuleIndex(self):\r
5905 return CParser.RULE_statement_list\r
5906\r
5907 # @param listener Type: ParseTreeListener\r
5908 def enterRule(self,listener):\r
5909 if hasattr( listener, "enterStatement_list" ):\r
5910 listener.enterStatement_list(self)\r
5911\r
5912 # @param listener Type: ParseTreeListener\r
5913 def exitRule(self,listener):\r
5914 if hasattr( listener, "exitStatement_list" ):\r
5915 listener.exitStatement_list(self)\r
5916\r
5917\r
5918\r
5919\r
5920 def statement_list(self):\r
5921\r
5922 localctx = CParser.Statement_listContext(self, self._ctx, self.state)\r
5923 self.enterRule(localctx, 132, self.RULE_statement_list)\r
5924 try:\r
5925 self.enterOuterAlt(localctx, 1)\r
5926 self.state = 832\r
5927 self._errHandler.sync(self)\r
5928 _alt = 1\r
5929 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5930 if _alt == 1:\r
5931 self.state = 831\r
5932 self.statement()\r
5933\r
5934 else:\r
5935 raise NoViableAltException(self)\r
5936 self.state = 834\r
5937 self._errHandler.sync(self)\r
5938 _alt = self._interp.adaptivePredict(self._input,103,self._ctx)\r
5939\r
5940 except RecognitionException as re:\r
5941 localctx.exception = re\r
5942 self._errHandler.reportError(self, re)\r
5943 self._errHandler.recover(self, re)\r
5944 finally:\r
5945 self.exitRule()\r
5946 return localctx\r
5947\r
5948 class Expression_statementContext(ParserRuleContext):\r
5949\r
5950 # @param parent=None Type: ParserRuleContext\r
5951 # @param invokingState=-1 Type: int\r
5952 def __init__(self,parser,parent=None,invokingState=-1):\r
5953 super().__init__(parent, invokingState)\r
5954 self.parser = parser\r
5955\r
5956 def expression(self):\r
5957 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
5958\r
5959\r
5960 def getRuleIndex(self):\r
5961 return CParser.RULE_expression_statement\r
5962\r
5963 # @param listener Type: ParseTreeListener\r
5964 def enterRule(self,listener):\r
5965 if hasattr( listener, "enterExpression_statement" ):\r
5966 listener.enterExpression_statement(self)\r
5967\r
5968 # @param listener Type: ParseTreeListener\r
5969 def exitRule(self,listener):\r
5970 if hasattr( listener, "exitExpression_statement" ):\r
5971 listener.exitExpression_statement(self)\r
5972\r
5973\r
5974\r
5975\r
5976 def expression_statement(self):\r
5977\r
5978 localctx = CParser.Expression_statementContext(self, self._ctx, self.state)\r
5979 self.enterRule(localctx, 134, self.RULE_expression_statement)\r
5980 try:\r
5981 self.state = 840\r
5982 self._errHandler.sync(self)\r
5983 token = self._input.LA(1)\r
5984 if token in [CParser.T__1]:\r
5985 self.enterOuterAlt(localctx, 1)\r
5986 self.state = 836\r
5987 self.match(CParser.T__1)\r
5988 pass\r
5989 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]:\r
5990 self.enterOuterAlt(localctx, 2)\r
5991 self.state = 837\r
5992 self.expression()\r
5993 self.state = 838\r
5994 self.match(CParser.T__1)\r
5995 pass\r
5996 else:\r
5997 raise NoViableAltException(self)\r
5998\r
5999 except RecognitionException as re:\r
6000 localctx.exception = re\r
6001 self._errHandler.reportError(self, re)\r
6002 self._errHandler.recover(self, re)\r
6003 finally:\r
6004 self.exitRule()\r
6005 return localctx\r
6006\r
6007 class Selection_statementContext(ParserRuleContext):\r
6008\r
6009 # @param parent=None Type: ParserRuleContext\r
6010 # @param invokingState=-1 Type: int\r
6011 def __init__(self,parser,parent=None,invokingState=-1):\r
6012 super().__init__(parent, invokingState)\r
6013 self.parser = parser\r
6014 self.e = None # ExpressionContext\r
6015\r
6016 # @param i=None Type: int\r
6017 def statement(self,i=None):\r
6018 if i is None:\r
6019 return self.getTypedRuleContexts(CParser.StatementContext)\r
6020 else:\r
6021 return self.getTypedRuleContext(CParser.StatementContext,i)\r
6022\r
6023\r
6024 def expression(self):\r
6025 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
6026\r
6027\r
6028 def getRuleIndex(self):\r
6029 return CParser.RULE_selection_statement\r
6030\r
6031 # @param listener Type: ParseTreeListener\r
6032 def enterRule(self,listener):\r
6033 if hasattr( listener, "enterSelection_statement" ):\r
6034 listener.enterSelection_statement(self)\r
6035\r
6036 # @param listener Type: ParseTreeListener\r
6037 def exitRule(self,listener):\r
6038 if hasattr( listener, "exitSelection_statement" ):\r
6039 listener.exitSelection_statement(self)\r
6040\r
6041\r
6042\r
6043\r
6044 def selection_statement(self):\r
6045\r
6046 localctx = CParser.Selection_statementContext(self, self._ctx, self.state)\r
6047 self.enterRule(localctx, 136, self.RULE_selection_statement)\r
6048 try:\r
6049 self.state = 858\r
6050 self._errHandler.sync(self)\r
6051 token = self._input.LA(1)\r
6052 if token in [CParser.T__83]:\r
6053 self.enterOuterAlt(localctx, 1)\r
6054 self.state = 842\r
6055 self.match(CParser.T__83)\r
6056 self.state = 843\r
6057 self.match(CParser.T__37)\r
6058 self.state = 844\r
6059 localctx.e = self.expression()\r
6060 self.state = 845\r
6061 self.match(CParser.T__38)\r
6062 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))))\r
6063 self.state = 847\r
6064 self.statement()\r
6065 self.state = 850\r
6066 self._errHandler.sync(self)\r
6067 la_ = self._interp.adaptivePredict(self._input,105,self._ctx)\r
6068 if la_ == 1:\r
6069 self.state = 848\r
6070 self.match(CParser.T__84)\r
6071 self.state = 849\r
6072 self.statement()\r
6073\r
6074\r
6075 pass\r
6076 elif token in [CParser.T__85]:\r
6077 self.enterOuterAlt(localctx, 2)\r
6078 self.state = 852\r
6079 self.match(CParser.T__85)\r
6080 self.state = 853\r
6081 self.match(CParser.T__37)\r
6082 self.state = 854\r
6083 self.expression()\r
6084 self.state = 855\r
6085 self.match(CParser.T__38)\r
6086 self.state = 856\r
6087 self.statement()\r
6088 pass\r
6089 else:\r
6090 raise NoViableAltException(self)\r
6091\r
6092 except RecognitionException as re:\r
6093 localctx.exception = re\r
6094 self._errHandler.reportError(self, re)\r
6095 self._errHandler.recover(self, re)\r
6096 finally:\r
6097 self.exitRule()\r
6098 return localctx\r
6099\r
6100 class Iteration_statementContext(ParserRuleContext):\r
6101\r
6102 # @param parent=None Type: ParserRuleContext\r
6103 # @param invokingState=-1 Type: int\r
6104 def __init__(self,parser,parent=None,invokingState=-1):\r
6105 super().__init__(parent, invokingState)\r
6106 self.parser = parser\r
6107 self.e = None # ExpressionContext\r
6108\r
6109 def statement(self):\r
6110 return self.getTypedRuleContext(CParser.StatementContext,0)\r
6111\r
6112\r
6113 def expression(self):\r
6114 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
6115\r
6116\r
6117 def getRuleIndex(self):\r
6118 return CParser.RULE_iteration_statement\r
6119\r
6120 # @param listener Type: ParseTreeListener\r
6121 def enterRule(self,listener):\r
6122 if hasattr( listener, "enterIteration_statement" ):\r
6123 listener.enterIteration_statement(self)\r
6124\r
6125 # @param listener Type: ParseTreeListener\r
6126 def exitRule(self,listener):\r
6127 if hasattr( listener, "exitIteration_statement" ):\r
6128 listener.exitIteration_statement(self)\r
6129\r
6130\r
6131\r
6132\r
6133 def iteration_statement(self):\r
6134\r
6135 localctx = CParser.Iteration_statementContext(self, self._ctx, self.state)\r
6136 self.enterRule(localctx, 138, self.RULE_iteration_statement)\r
6137 try:\r
6138 self.state = 876\r
6139 self._errHandler.sync(self)\r
6140 token = self._input.LA(1)\r
6141 if token in [CParser.T__86]:\r
6142 self.enterOuterAlt(localctx, 1)\r
6143 self.state = 860\r
6144 self.match(CParser.T__86)\r
6145 self.state = 861\r
6146 self.match(CParser.T__37)\r
6147 self.state = 862\r
6148 localctx.e = self.expression()\r
6149 self.state = 863\r
6150 self.match(CParser.T__38)\r
6151 self.state = 864\r
6152 self.statement()\r
6153 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))))\r
6154 pass\r
6155 elif token in [CParser.T__87]:\r
6156 self.enterOuterAlt(localctx, 2)\r
6157 self.state = 867\r
6158 self.match(CParser.T__87)\r
6159 self.state = 868\r
6160 self.statement()\r
6161 self.state = 869\r
6162 self.match(CParser.T__86)\r
6163 self.state = 870\r
6164 self.match(CParser.T__37)\r
6165 self.state = 871\r
6166 localctx.e = self.expression()\r
6167 self.state = 872\r
6168 self.match(CParser.T__38)\r
6169 self.state = 873\r
6170 self.match(CParser.T__1)\r
6171 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))))\r
6172 pass\r
6173 else:\r
6174 raise NoViableAltException(self)\r
6175\r
6176 except RecognitionException as re:\r
6177 localctx.exception = re\r
6178 self._errHandler.reportError(self, re)\r
6179 self._errHandler.recover(self, re)\r
6180 finally:\r
6181 self.exitRule()\r
6182 return localctx\r
6183\r
6184 class Jump_statementContext(ParserRuleContext):\r
6185\r
6186 # @param parent=None Type: ParserRuleContext\r
6187 # @param invokingState=-1 Type: int\r
6188 def __init__(self,parser,parent=None,invokingState=-1):\r
6189 super().__init__(parent, invokingState)\r
6190 self.parser = parser\r
6191\r
6192 def IDENTIFIER(self):\r
6193 return self.getToken(CParser.IDENTIFIER, 0)\r
6194\r
6195 def expression(self):\r
6196 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
6197\r
6198\r
6199 def getRuleIndex(self):\r
6200 return CParser.RULE_jump_statement\r
6201\r
6202 # @param listener Type: ParseTreeListener\r
6203 def enterRule(self,listener):\r
6204 if hasattr( listener, "enterJump_statement" ):\r
6205 listener.enterJump_statement(self)\r
6206\r
6207 # @param listener Type: ParseTreeListener\r
6208 def exitRule(self,listener):\r
6209 if hasattr( listener, "exitJump_statement" ):\r
6210 listener.exitJump_statement(self)\r
6211\r
6212\r
6213\r
6214\r
6215 def jump_statement(self):\r
6216\r
6217 localctx = CParser.Jump_statementContext(self, self._ctx, self.state)\r
6218 self.enterRule(localctx, 140, self.RULE_jump_statement)\r
6219 try:\r
6220 self.state = 891\r
6221 self._errHandler.sync(self)\r
6222 la_ = self._interp.adaptivePredict(self._input,108,self._ctx)\r
6223 if la_ == 1:\r
6224 self.enterOuterAlt(localctx, 1)\r
6225 self.state = 878\r
6226 self.match(CParser.T__88)\r
6227 self.state = 879\r
6228 self.match(CParser.IDENTIFIER)\r
6229 self.state = 880\r
6230 self.match(CParser.T__1)\r
6231 pass\r
6232\r
6233 elif la_ == 2:\r
6234 self.enterOuterAlt(localctx, 2)\r
6235 self.state = 881\r
6236 self.match(CParser.T__89)\r
6237 self.state = 882\r
6238 self.match(CParser.T__1)\r
6239 pass\r
6240\r
6241 elif la_ == 3:\r
6242 self.enterOuterAlt(localctx, 3)\r
6243 self.state = 883\r
6244 self.match(CParser.T__90)\r
6245 self.state = 884\r
6246 self.match(CParser.T__1)\r
6247 pass\r
6248\r
6249 elif la_ == 4:\r
6250 self.enterOuterAlt(localctx, 4)\r
6251 self.state = 885\r
6252 self.match(CParser.T__91)\r
6253 self.state = 886\r
6254 self.match(CParser.T__1)\r
6255 pass\r
6256\r
6257 elif la_ == 5:\r
6258 self.enterOuterAlt(localctx, 5)\r
6259 self.state = 887\r
6260 self.match(CParser.T__91)\r
6261 self.state = 888\r
6262 self.expression()\r
6263 self.state = 889\r
6264 self.match(CParser.T__1)\r
6265 pass\r
6266\r
6267\r
6268 except RecognitionException as re:\r
6269 localctx.exception = re\r
6270 self._errHandler.reportError(self, re)\r
6271 self._errHandler.recover(self, re)\r
6272 finally:\r
6273 self.exitRule()\r
6274 return localctx\r
6275\r
6276\r
6277\r
6278\r
6279\r