]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/Python/Eot/CParser.py
BaseTools/Ecc/EOT: Add Python 3 support on ECC and EOT tools.
[mirror_edk2.git] / BaseTools / Source / Python / Eot / CParser.py
CommitLineData
22c4de1a
HC
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
f51461c8 7\r
f7496d71 8\r
52302d4d
LG
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
22c4de1a 16# Copyright (c) 2009 - 2010, Intel Corporation All rights reserved.\r
52302d4d
LG
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
22c4de1a
HC
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 def __init__(self, input:TokenStream, output:TextIO = sys.stdout):\r
745 super().__init__(input, output)\r
746 self.checkVersion("4.7.1")\r
747 self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)\r
748 self._predicates = None\r
749\r
750\r
751\r
752 \r
52302d4d 753 def printTokenInfo(self, line, offset, tokenText):\r
72443dd2 754 print(str(line)+ ',' + str(offset) + ':' + str(tokenText))\r
22c4de1a 755 \r
52302d4d 756 def StorePredicateExpression(self, StartLine, StartOffset, EndLine, EndOffset, Text):\r
22c4de1a
HC
757 PredExp = CodeFragment.PredicateExpression(Text, (StartLine, StartOffset), (EndLine, EndOffset))\r
758 FileProfile.PredicateExpressionList.append(PredExp)\r
759 \r
52302d4d 760 def StoreEnumerationDefinition(self, StartLine, StartOffset, EndLine, EndOffset, Text):\r
22c4de1a
HC
761 EnumDef = CodeFragment.EnumerationDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset))\r
762 FileProfile.EnumerationDefinitionList.append(EnumDef)\r
763 \r
52302d4d 764 def StoreStructUnionDefinition(self, StartLine, StartOffset, EndLine, EndOffset, Text):\r
22c4de1a
HC
765 SUDef = CodeFragment.StructUnionDefinition(Text, (StartLine, StartOffset), (EndLine, EndOffset))\r
766 FileProfile.StructUnionDefinitionList.append(SUDef)\r
767 \r
52302d4d 768 def StoreTypedefDefinition(self, StartLine, StartOffset, EndLine, EndOffset, FromText, ToText):\r
22c4de1a
HC
769 Tdef = CodeFragment.TypedefDefinition(FromText, ToText, (StartLine, StartOffset), (EndLine, EndOffset))\r
770 FileProfile.TypedefDefinitionList.append(Tdef)\r
f7496d71 771\r
52302d4d 772 def StoreFunctionDefinition(self, StartLine, StartOffset, EndLine, EndOffset, ModifierText, DeclText, LeftBraceLine, LeftBraceOffset, DeclLine, DeclOffset):\r
22c4de1a
HC
773 FuncDef = CodeFragment.FunctionDefinition(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset), (LeftBraceLine, LeftBraceOffset), (DeclLine, DeclOffset))\r
774 FileProfile.FunctionDefinitionList.append(FuncDef)\r
775 \r
52302d4d 776 def StoreVariableDeclaration(self, StartLine, StartOffset, EndLine, EndOffset, ModifierText, DeclText):\r
22c4de1a
HC
777 VarDecl = CodeFragment.VariableDeclaration(ModifierText, DeclText, (StartLine, StartOffset), (EndLine, EndOffset))\r
778 FileProfile.VariableDeclarationList.append(VarDecl)\r
f7496d71 779\r
52302d4d 780 def StoreFunctionCalling(self, StartLine, StartOffset, EndLine, EndOffset, FuncName, ParamList):\r
22c4de1a
HC
781 FuncCall = CodeFragment.FunctionCalling(FuncName, ParamList, (StartLine, StartOffset), (EndLine, EndOffset))\r
782 FileProfile.FunctionCallingList.append(FuncCall)\r
f51461c8
LG
783\r
784\r
f51461c8 785\r
22c4de1a 786 class Translation_unitContext(ParserRuleContext):\r
f51461c8 787\r
22c4de1a
HC
788 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
789 super().__init__(parent, invokingState)\r
790 self.parser = parser\r
f51461c8 791\r
22c4de1a
HC
792 def external_declaration(self, i:int=None):\r
793 if i is None:\r
794 return self.getTypedRuleContexts(CParser.External_declarationContext)\r
795 else:\r
796 return self.getTypedRuleContext(CParser.External_declarationContext,i)\r
f51461c8
LG
797\r
798\r
22c4de1a
HC
799 def getRuleIndex(self):\r
800 return CParser.RULE_translation_unit\r
f51461c8 801\r
22c4de1a
HC
802 def enterRule(self, listener:ParseTreeListener):\r
803 if hasattr( listener, "enterTranslation_unit" ):\r
804 listener.enterTranslation_unit(self)\r
f51461c8 805\r
22c4de1a
HC
806 def exitRule(self, listener:ParseTreeListener):\r
807 if hasattr( listener, "exitTranslation_unit" ):\r
808 listener.exitTranslation_unit(self)\r
f51461c8 809\r
f51461c8 810\r
f51461c8
LG
811\r
812\r
22c4de1a 813 def translation_unit(self):\r
f51461c8 814\r
22c4de1a
HC
815 localctx = CParser.Translation_unitContext(self, self._ctx, self.state)\r
816 self.enterRule(localctx, 0, self.RULE_translation_unit)\r
817 self._la = 0 # Token type\r
f51461c8 818 try:\r
22c4de1a
HC
819 self.enterOuterAlt(localctx, 1)\r
820 self.state = 145\r
821 self._errHandler.sync(self)\r
822 _la = self._input.LA(1)\r
823 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
824 self.state = 142\r
825 self.external_declaration()\r
826 self.state = 147\r
827 self._errHandler.sync(self)\r
828 _la = self._input.LA(1)\r
829\r
830 except RecognitionException as re:\r
831 localctx.exception = re\r
832 self._errHandler.reportError(self, re)\r
833 self._errHandler.recover(self, re)\r
834 finally:\r
835 self.exitRule()\r
836 return localctx\r
f51461c8 837\r
22c4de1a 838 class External_declarationContext(ParserRuleContext):\r
f51461c8 839\r
22c4de1a
HC
840 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
841 super().__init__(parent, invokingState)\r
842 self.parser = parser\r
f51461c8 843\r
22c4de1a
HC
844 def declarator(self):\r
845 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
f51461c8 846\r
f51461c8 847\r
22c4de1a
HC
848 def declaration_specifiers(self):\r
849 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
f51461c8 850\r
f51461c8 851\r
22c4de1a
HC
852 def declaration(self, i:int=None):\r
853 if i is None:\r
854 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
855 else:\r
856 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
f51461c8 857\r
f51461c8 858\r
22c4de1a
HC
859 def function_definition(self):\r
860 return self.getTypedRuleContext(CParser.Function_definitionContext,0)\r
f51461c8 861\r
f51461c8 862\r
22c4de1a
HC
863 def macro_statement(self):\r
864 return self.getTypedRuleContext(CParser.Macro_statementContext,0)\r
f51461c8 865\r
f51461c8 866\r
22c4de1a
HC
867 def getRuleIndex(self):\r
868 return CParser.RULE_external_declaration\r
f51461c8 869\r
22c4de1a
HC
870 def enterRule(self, listener:ParseTreeListener):\r
871 if hasattr( listener, "enterExternal_declaration" ):\r
872 listener.enterExternal_declaration(self)\r
f51461c8 873\r
22c4de1a
HC
874 def exitRule(self, listener:ParseTreeListener):\r
875 if hasattr( listener, "exitExternal_declaration" ):\r
876 listener.exitExternal_declaration(self)\r
f51461c8 877\r
f51461c8 878\r
f51461c8 879\r
f51461c8 880\r
22c4de1a 881 def external_declaration(self):\r
f51461c8 882\r
22c4de1a
HC
883 localctx = CParser.External_declarationContext(self, self._ctx, self.state)\r
884 self.enterRule(localctx, 2, self.RULE_external_declaration)\r
885 self._la = 0 # Token type\r
886 try:\r
887 self.state = 166\r
888 self._errHandler.sync(self)\r
889 la_ = self._interp.adaptivePredict(self._input,4,self._ctx)\r
890 if la_ == 1:\r
891 self.enterOuterAlt(localctx, 1)\r
892 self.state = 149\r
893 self._errHandler.sync(self)\r
894 la_ = self._interp.adaptivePredict(self._input,1,self._ctx)\r
895 if la_ == 1:\r
896 self.state = 148\r
897 self.declaration_specifiers()\r
f51461c8
LG
898\r
899\r
22c4de1a
HC
900 self.state = 151\r
901 self.declarator()\r
902 self.state = 155\r
903 self._errHandler.sync(self)\r
904 _la = self._input.LA(1)\r
905 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
906 self.state = 152\r
f51461c8 907 self.declaration()\r
22c4de1a
HC
908 self.state = 157\r
909 self._errHandler.sync(self)\r
910 _la = self._input.LA(1)\r
911\r
912 self.state = 158\r
913 self.match(CParser.T__0)\r
914 pass\r
915\r
916 elif la_ == 2:\r
917 self.enterOuterAlt(localctx, 2)\r
918 self.state = 160\r
919 self.function_definition()\r
920 pass\r
921\r
922 elif la_ == 3:\r
923 self.enterOuterAlt(localctx, 3)\r
924 self.state = 161\r
925 self.declaration()\r
926 pass\r
f51461c8 927\r
22c4de1a
HC
928 elif la_ == 4:\r
929 self.enterOuterAlt(localctx, 4)\r
930 self.state = 162\r
931 self.macro_statement()\r
932 self.state = 164\r
933 self._errHandler.sync(self)\r
934 _la = self._input.LA(1)\r
935 if _la==CParser.T__1:\r
936 self.state = 163\r
937 self.match(CParser.T__1)\r
f51461c8
LG
938\r
939\r
22c4de1a 940 pass\r
f51461c8
LG
941\r
942\r
22c4de1a
HC
943 except RecognitionException as re:\r
944 localctx.exception = re\r
945 self._errHandler.reportError(self, re)\r
946 self._errHandler.recover(self, re)\r
f51461c8 947 finally:\r
22c4de1a
HC
948 self.exitRule()\r
949 return localctx\r
f7496d71 950\r
22c4de1a 951 class Function_definitionContext(ParserRuleContext):\r
f51461c8 952\r
22c4de1a
HC
953 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
954 super().__init__(parent, invokingState)\r
955 self.parser = parser\r
956 self.ModifierText = ''\r
957 self.DeclText = ''\r
958 self.LBLine = 0\r
959 self.LBOffset = 0\r
960 self.DeclLine = 0\r
961 self.DeclOffset = 0\r
962 self.d = None # Declaration_specifiersContext\r
963 self._declaration_specifiers = None # Declaration_specifiersContext\r
964 self._declarator = None # DeclaratorContext\r
965 self.a = None # Compound_statementContext\r
966 self.b = None # Compound_statementContext\r
f51461c8 967\r
22c4de1a
HC
968 def declarator(self):\r
969 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
f51461c8 970\r
f51461c8 971\r
22c4de1a
HC
972 def compound_statement(self):\r
973 return self.getTypedRuleContext(CParser.Compound_statementContext,0)\r
f51461c8 974\r
f51461c8 975\r
22c4de1a
HC
976 def declaration_specifiers(self):\r
977 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
f51461c8
LG
978\r
979\r
22c4de1a
HC
980 def declaration(self, i:int=None):\r
981 if i is None:\r
982 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
983 else:\r
984 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
f51461c8
LG
985\r
986\r
22c4de1a
HC
987 def getRuleIndex(self):\r
988 return CParser.RULE_function_definition\r
f51461c8 989\r
22c4de1a
HC
990 def enterRule(self, listener:ParseTreeListener):\r
991 if hasattr( listener, "enterFunction_definition" ):\r
992 listener.enterFunction_definition(self)\r
f7496d71 993\r
22c4de1a
HC
994 def exitRule(self, listener:ParseTreeListener):\r
995 if hasattr( listener, "exitFunction_definition" ):\r
996 listener.exitFunction_definition(self)\r
f7496d71 997\r
f51461c8
LG
998\r
999\r
1000\r
22c4de1a 1001 def function_definition(self):\r
f51461c8 1002\r
22c4de1a
HC
1003 localctx = CParser.Function_definitionContext(self, self._ctx, self.state)\r
1004 self.enterRule(localctx, 4, self.RULE_function_definition)\r
f51461c8 1005\r
22c4de1a
HC
1006 ModifierText = '';\r
1007 DeclText = '';\r
1008 LBLine = 0;\r
1009 LBOffset = 0;\r
1010 DeclLine = 0;\r
1011 DeclOffset = 0;\r
f7496d71 1012\r
22c4de1a
HC
1013 self._la = 0 # Token type\r
1014 try:\r
1015 self.enterOuterAlt(localctx, 1)\r
1016 self.state = 169\r
1017 self._errHandler.sync(self)\r
1018 la_ = self._interp.adaptivePredict(self._input,5,self._ctx)\r
1019 if la_ == 1:\r
1020 self.state = 168\r
1021 localctx.d = localctx._declaration_specifiers = self.declaration_specifiers()\r
1022\r
1023\r
1024 self.state = 171\r
1025 localctx._declarator = self.declarator()\r
1026 self.state = 180\r
1027 self._errHandler.sync(self)\r
1028 token = self._input.LA(1)\r
1029 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
1030 self.state = 173 \r
1031 self._errHandler.sync(self)\r
1032 _la = self._input.LA(1)\r
1033 while True:\r
1034 self.state = 172\r
1035 self.declaration()\r
1036 self.state = 175 \r
1037 self._errHandler.sync(self)\r
1038 _la = self._input.LA(1)\r
1039 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
1040 break\r
1041\r
1042 self.state = 177\r
1043 localctx.a = self.compound_statement()\r
1044 pass\r
1045 elif token in [CParser.T__0]:\r
1046 self.state = 179\r
1047 localctx.b = self.compound_statement()\r
1048 pass\r
1049 else:\r
1050 raise NoViableAltException(self)\r
f51461c8 1051\r
22c4de1a
HC
1052 \r
1053 if localctx.d != None:\r
1054 ModifierText = (None if localctx._declaration_specifiers is None else self._input.getText((localctx._declaration_specifiers.start,localctx._declaration_specifiers.stop)))\r
1055 else:\r
1056 ModifierText = ''\r
1057 DeclText = (None if localctx._declarator is None else self._input.getText((localctx._declarator.start,localctx._declarator.stop)))\r
1058 DeclLine = (None if localctx._declarator is None else localctx._declarator.start).line\r
1059 DeclOffset = (None if localctx._declarator is None else localctx._declarator.start).column\r
1060 if localctx.a != None:\r
1061 LBLine = (None if localctx.a is None else localctx.a.start).line\r
1062 LBOffset = (None if localctx.a is None else localctx.a.start).column\r
1063 else:\r
1064 LBLine = (None if localctx.b is None else localctx.b.start).line\r
1065 LBOffset = (None if localctx.b is None else localctx.b.start).column\r
1066 \r
1067 self._ctx.stop = self._input.LT(-1)\r
f51461c8 1068\r
22c4de1a 1069 self.StoreFunctionDefinition(localctx.start.line, localctx.start.column, localctx.stop.line, localctx.stop.column, ModifierText, DeclText, LBLine, LBOffset, DeclLine, DeclOffset)\r
f51461c8 1070\r
22c4de1a
HC
1071 except RecognitionException as re:\r
1072 localctx.exception = re\r
1073 self._errHandler.reportError(self, re)\r
1074 self._errHandler.recover(self, re)\r
f51461c8 1075 finally:\r
22c4de1a
HC
1076 self.exitRule()\r
1077 return localctx\r
f51461c8 1078\r
22c4de1a 1079 class Declaration_specifiersContext(ParserRuleContext):\r
f51461c8 1080\r
22c4de1a
HC
1081 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1082 super().__init__(parent, invokingState)\r
1083 self.parser = parser\r
f51461c8 1084\r
22c4de1a
HC
1085 def storage_class_specifier(self, i:int=None):\r
1086 if i is None:\r
1087 return self.getTypedRuleContexts(CParser.Storage_class_specifierContext)\r
1088 else:\r
1089 return self.getTypedRuleContext(CParser.Storage_class_specifierContext,i)\r
f51461c8 1090\r
f51461c8 1091\r
22c4de1a
HC
1092 def type_specifier(self, i:int=None):\r
1093 if i is None:\r
1094 return self.getTypedRuleContexts(CParser.Type_specifierContext)\r
1095 else:\r
1096 return self.getTypedRuleContext(CParser.Type_specifierContext,i)\r
f51461c8 1097\r
f51461c8 1098\r
22c4de1a
HC
1099 def type_qualifier(self, i:int=None):\r
1100 if i is None:\r
1101 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
1102 else:\r
1103 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
f51461c8 1104\r
f51461c8 1105\r
22c4de1a
HC
1106 def getRuleIndex(self):\r
1107 return CParser.RULE_declaration_specifiers\r
f51461c8 1108\r
22c4de1a
HC
1109 def enterRule(self, listener:ParseTreeListener):\r
1110 if hasattr( listener, "enterDeclaration_specifiers" ):\r
1111 listener.enterDeclaration_specifiers(self)\r
f51461c8 1112\r
22c4de1a
HC
1113 def exitRule(self, listener:ParseTreeListener):\r
1114 if hasattr( listener, "exitDeclaration_specifiers" ):\r
1115 listener.exitDeclaration_specifiers(self)\r
f51461c8 1116\r
f51461c8
LG
1117\r
1118\r
1119\r
22c4de1a 1120 def declaration_specifiers(self):\r
f51461c8 1121\r
22c4de1a
HC
1122 localctx = CParser.Declaration_specifiersContext(self, self._ctx, self.state)\r
1123 self.enterRule(localctx, 6, self.RULE_declaration_specifiers)\r
f51461c8 1124 try:\r
22c4de1a
HC
1125 self.enterOuterAlt(localctx, 1)\r
1126 self.state = 187 \r
1127 self._errHandler.sync(self)\r
1128 _alt = 1\r
1129 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
1130 if _alt == 1:\r
1131 self.state = 187\r
1132 self._errHandler.sync(self)\r
1133 token = self._input.LA(1)\r
1134 if token in [CParser.T__5, CParser.T__6, CParser.T__7, CParser.T__8, CParser.T__9]:\r
1135 self.state = 184\r
f51461c8 1136 self.storage_class_specifier()\r
22c4de1a
HC
1137 pass\r
1138 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
1139 self.state = 185\r
f51461c8 1140 self.type_specifier()\r
22c4de1a
HC
1141 pass\r
1142 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
1143 self.state = 186\r
f51461c8 1144 self.type_qualifier()\r
22c4de1a 1145 pass\r
f51461c8 1146 else:\r
22c4de1a 1147 raise NoViableAltException(self)\r
f51461c8
LG
1148\r
1149\r
22c4de1a
HC
1150 else:\r
1151 raise NoViableAltException(self)\r
1152 self.state = 189 \r
1153 self._errHandler.sync(self)\r
1154 _alt = self._interp.adaptivePredict(self._input,9,self._ctx)\r
1155\r
1156 except RecognitionException as re:\r
1157 localctx.exception = re\r
1158 self._errHandler.reportError(self, re)\r
1159 self._errHandler.recover(self, re)\r
f51461c8 1160 finally:\r
22c4de1a
HC
1161 self.exitRule()\r
1162 return localctx\r
f51461c8 1163\r
22c4de1a 1164 class DeclarationContext(ParserRuleContext):\r
f51461c8 1165\r
22c4de1a
HC
1166 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1167 super().__init__(parent, invokingState)\r
1168 self.parser = parser\r
1169 self.a = None # Token\r
1170 self.b = None # Declaration_specifiersContext\r
1171 self.c = None # Init_declarator_listContext\r
1172 self.d = None # Token\r
1173 self.s = None # Declaration_specifiersContext\r
1174 self.t = None # Init_declarator_listContext\r
1175 self.e = None # Token\r
f51461c8 1176\r
22c4de1a
HC
1177 def init_declarator_list(self):\r
1178 return self.getTypedRuleContext(CParser.Init_declarator_listContext,0)\r
f51461c8
LG
1179\r
1180\r
22c4de1a
HC
1181 def declaration_specifiers(self):\r
1182 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
f51461c8
LG
1183\r
1184\r
22c4de1a
HC
1185 def getRuleIndex(self):\r
1186 return CParser.RULE_declaration\r
f51461c8 1187\r
22c4de1a
HC
1188 def enterRule(self, listener:ParseTreeListener):\r
1189 if hasattr( listener, "enterDeclaration" ):\r
1190 listener.enterDeclaration(self)\r
f51461c8 1191\r
22c4de1a
HC
1192 def exitRule(self, listener:ParseTreeListener):\r
1193 if hasattr( listener, "exitDeclaration" ):\r
1194 listener.exitDeclaration(self)\r
f51461c8 1195\r
f51461c8 1196\r
f51461c8
LG
1197\r
1198\r
22c4de1a 1199 def declaration(self):\r
f51461c8 1200\r
22c4de1a
HC
1201 localctx = CParser.DeclarationContext(self, self._ctx, self.state)\r
1202 self.enterRule(localctx, 8, self.RULE_declaration)\r
1203 self._la = 0 # Token type\r
f51461c8 1204 try:\r
22c4de1a
HC
1205 self.state = 206\r
1206 self._errHandler.sync(self)\r
1207 token = self._input.LA(1)\r
1208 if token in [CParser.T__2]:\r
1209 self.enterOuterAlt(localctx, 1)\r
1210 self.state = 191\r
1211 localctx.a = self.match(CParser.T__2)\r
1212 self.state = 193\r
1213 self._errHandler.sync(self)\r
1214 la_ = self._interp.adaptivePredict(self._input,10,self._ctx)\r
1215 if la_ == 1:\r
1216 self.state = 192\r
1217 localctx.b = self.declaration_specifiers()\r
1218\r
1219\r
1220 self.state = 195\r
1221 localctx.c = self.init_declarator_list()\r
1222 self.state = 196\r
1223 localctx.d = self.match(CParser.T__1)\r
1224\r
1225 if localctx.b is not None:\r
1226 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
f51461c8 1227 else:\r
22c4de1a
HC
1228 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
1229 \r
1230 pass\r
1231 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
1232 self.enterOuterAlt(localctx, 2)\r
1233 self.state = 199\r
1234 localctx.s = self.declaration_specifiers()\r
1235 self.state = 201\r
1236 self._errHandler.sync(self)\r
1237 _la = self._input.LA(1)\r
1238 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
1239 self.state = 200\r
1240 localctx.t = self.init_declarator_list()\r
1241\r
1242\r
1243 self.state = 203\r
1244 localctx.e = self.match(CParser.T__1)\r
1245\r
1246 if localctx.t is not None:\r
1247 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
1248\r
1249 pass\r
1250 else:\r
1251 raise NoViableAltException(self)\r
f51461c8 1252\r
22c4de1a
HC
1253 except RecognitionException as re:\r
1254 localctx.exception = re\r
1255 self._errHandler.reportError(self, re)\r
1256 self._errHandler.recover(self, re)\r
f51461c8 1257 finally:\r
22c4de1a
HC
1258 self.exitRule()\r
1259 return localctx\r
f51461c8 1260\r
22c4de1a 1261 class Init_declarator_listContext(ParserRuleContext):\r
f51461c8 1262\r
22c4de1a
HC
1263 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1264 super().__init__(parent, invokingState)\r
1265 self.parser = parser\r
f51461c8 1266\r
22c4de1a
HC
1267 def init_declarator(self, i:int=None):\r
1268 if i is None:\r
1269 return self.getTypedRuleContexts(CParser.Init_declaratorContext)\r
1270 else:\r
1271 return self.getTypedRuleContext(CParser.Init_declaratorContext,i)\r
f51461c8
LG
1272\r
1273\r
22c4de1a
HC
1274 def getRuleIndex(self):\r
1275 return CParser.RULE_init_declarator_list\r
f51461c8 1276\r
22c4de1a
HC
1277 def enterRule(self, listener:ParseTreeListener):\r
1278 if hasattr( listener, "enterInit_declarator_list" ):\r
1279 listener.enterInit_declarator_list(self)\r
f51461c8 1280\r
22c4de1a
HC
1281 def exitRule(self, listener:ParseTreeListener):\r
1282 if hasattr( listener, "exitInit_declarator_list" ):\r
1283 listener.exitInit_declarator_list(self)\r
f51461c8
LG
1284\r
1285\r
f51461c8
LG
1286\r
1287\r
22c4de1a 1288 def init_declarator_list(self):\r
f51461c8 1289\r
22c4de1a
HC
1290 localctx = CParser.Init_declarator_listContext(self, self._ctx, self.state)\r
1291 self.enterRule(localctx, 10, self.RULE_init_declarator_list)\r
1292 self._la = 0 # Token type\r
1293 try:\r
1294 self.enterOuterAlt(localctx, 1)\r
1295 self.state = 208\r
1296 self.init_declarator()\r
1297 self.state = 213\r
1298 self._errHandler.sync(self)\r
1299 _la = self._input.LA(1)\r
1300 while _la==CParser.T__3:\r
1301 self.state = 209\r
1302 self.match(CParser.T__3)\r
1303 self.state = 210\r
1304 self.init_declarator()\r
1305 self.state = 215\r
1306 self._errHandler.sync(self)\r
1307 _la = self._input.LA(1)\r
1308\r
1309 except RecognitionException as re:\r
1310 localctx.exception = re\r
1311 self._errHandler.reportError(self, re)\r
1312 self._errHandler.recover(self, re)\r
1313 finally:\r
1314 self.exitRule()\r
1315 return localctx\r
f51461c8 1316\r
22c4de1a 1317 class Init_declaratorContext(ParserRuleContext):\r
f51461c8 1318\r
22c4de1a
HC
1319 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1320 super().__init__(parent, invokingState)\r
1321 self.parser = parser\r
f51461c8 1322\r
22c4de1a
HC
1323 def declarator(self):\r
1324 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
f7496d71 1325\r
f7496d71 1326\r
22c4de1a
HC
1327 def initializer(self):\r
1328 return self.getTypedRuleContext(CParser.InitializerContext,0)\r
f51461c8
LG
1329\r
1330\r
22c4de1a
HC
1331 def getRuleIndex(self):\r
1332 return CParser.RULE_init_declarator\r
f51461c8 1333\r
22c4de1a
HC
1334 def enterRule(self, listener:ParseTreeListener):\r
1335 if hasattr( listener, "enterInit_declarator" ):\r
1336 listener.enterInit_declarator(self)\r
f7496d71 1337\r
22c4de1a
HC
1338 def exitRule(self, listener:ParseTreeListener):\r
1339 if hasattr( listener, "exitInit_declarator" ):\r
1340 listener.exitInit_declarator(self)\r
f7496d71 1341\r
f51461c8
LG
1342\r
1343\r
1344\r
22c4de1a 1345 def init_declarator(self):\r
f51461c8 1346\r
22c4de1a
HC
1347 localctx = CParser.Init_declaratorContext(self, self._ctx, self.state)\r
1348 self.enterRule(localctx, 12, self.RULE_init_declarator)\r
1349 self._la = 0 # Token type\r
1350 try:\r
1351 self.enterOuterAlt(localctx, 1)\r
1352 self.state = 216\r
1353 self.declarator()\r
1354 self.state = 219\r
1355 self._errHandler.sync(self)\r
1356 _la = self._input.LA(1)\r
1357 if _la==CParser.T__4:\r
1358 self.state = 217\r
1359 self.match(CParser.T__4)\r
1360 self.state = 218\r
1361 self.initializer()\r
f51461c8
LG
1362\r
1363\r
22c4de1a
HC
1364 except RecognitionException as re:\r
1365 localctx.exception = re\r
1366 self._errHandler.reportError(self, re)\r
1367 self._errHandler.recover(self, re)\r
f51461c8 1368 finally:\r
22c4de1a
HC
1369 self.exitRule()\r
1370 return localctx\r
f51461c8 1371\r
22c4de1a 1372 class Storage_class_specifierContext(ParserRuleContext):\r
f51461c8 1373\r
22c4de1a
HC
1374 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1375 super().__init__(parent, invokingState)\r
1376 self.parser = parser\r
f51461c8 1377\r
f51461c8 1378\r
22c4de1a
HC
1379 def getRuleIndex(self):\r
1380 return CParser.RULE_storage_class_specifier\r
f51461c8 1381\r
22c4de1a
HC
1382 def enterRule(self, listener:ParseTreeListener):\r
1383 if hasattr( listener, "enterStorage_class_specifier" ):\r
1384 listener.enterStorage_class_specifier(self)\r
f51461c8 1385\r
22c4de1a
HC
1386 def exitRule(self, listener:ParseTreeListener):\r
1387 if hasattr( listener, "exitStorage_class_specifier" ):\r
1388 listener.exitStorage_class_specifier(self)\r
f51461c8 1389\r
f51461c8
LG
1390\r
1391\r
1392\r
22c4de1a 1393 def storage_class_specifier(self):\r
f51461c8 1394\r
22c4de1a
HC
1395 localctx = CParser.Storage_class_specifierContext(self, self._ctx, self.state)\r
1396 self.enterRule(localctx, 14, self.RULE_storage_class_specifier)\r
1397 self._la = 0 # Token type\r
1398 try:\r
1399 self.enterOuterAlt(localctx, 1)\r
1400 self.state = 221\r
1401 _la = self._input.LA(1)\r
1402 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
1403 self._errHandler.recoverInline(self)\r
1404 else:\r
1405 self._errHandler.reportMatch(self)\r
1406 self.consume()\r
1407 except RecognitionException as re:\r
1408 localctx.exception = re\r
1409 self._errHandler.reportError(self, re)\r
1410 self._errHandler.recover(self, re)\r
f51461c8 1411 finally:\r
22c4de1a
HC
1412 self.exitRule()\r
1413 return localctx\r
f51461c8 1414\r
22c4de1a 1415 class Type_specifierContext(ParserRuleContext):\r
f51461c8 1416\r
22c4de1a
HC
1417 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1418 super().__init__(parent, invokingState)\r
1419 self.parser = parser\r
1420 self.s = None # Struct_or_union_specifierContext\r
1421 self.e = None # Enum_specifierContext\r
f51461c8 1422\r
22c4de1a
HC
1423 def struct_or_union_specifier(self):\r
1424 return self.getTypedRuleContext(CParser.Struct_or_union_specifierContext,0)\r
f51461c8
LG
1425\r
1426\r
22c4de1a
HC
1427 def enum_specifier(self):\r
1428 return self.getTypedRuleContext(CParser.Enum_specifierContext,0)\r
f51461c8 1429\r
f51461c8 1430\r
22c4de1a
HC
1431 def IDENTIFIER(self):\r
1432 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 1433\r
22c4de1a
HC
1434 def declarator(self):\r
1435 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
f51461c8 1436\r
f51461c8 1437\r
22c4de1a
HC
1438 def type_qualifier(self, i:int=None):\r
1439 if i is None:\r
1440 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
1441 else:\r
1442 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
f51461c8 1443\r
f51461c8 1444\r
22c4de1a
HC
1445 def type_id(self):\r
1446 return self.getTypedRuleContext(CParser.Type_idContext,0)\r
f51461c8 1447\r
f51461c8 1448\r
22c4de1a
HC
1449 def getRuleIndex(self):\r
1450 return CParser.RULE_type_specifier\r
f51461c8 1451\r
22c4de1a
HC
1452 def enterRule(self, listener:ParseTreeListener):\r
1453 if hasattr( listener, "enterType_specifier" ):\r
1454 listener.enterType_specifier(self)\r
f51461c8 1455\r
22c4de1a
HC
1456 def exitRule(self, listener:ParseTreeListener):\r
1457 if hasattr( listener, "exitType_specifier" ):\r
1458 listener.exitType_specifier(self)\r
f51461c8 1459\r
f51461c8 1460\r
f51461c8
LG
1461\r
1462\r
22c4de1a 1463 def type_specifier(self):\r
f51461c8 1464\r
22c4de1a
HC
1465 localctx = CParser.Type_specifierContext(self, self._ctx, self.state)\r
1466 self.enterRule(localctx, 16, self.RULE_type_specifier)\r
f51461c8 1467 try:\r
22c4de1a
HC
1468 self.state = 247\r
1469 self._errHandler.sync(self)\r
1470 la_ = self._interp.adaptivePredict(self._input,16,self._ctx)\r
1471 if la_ == 1:\r
1472 self.enterOuterAlt(localctx, 1)\r
1473 self.state = 223\r
1474 self.match(CParser.T__10)\r
1475 pass\r
1476\r
1477 elif la_ == 2:\r
1478 self.enterOuterAlt(localctx, 2)\r
1479 self.state = 224\r
1480 self.match(CParser.T__11)\r
1481 pass\r
1482\r
1483 elif la_ == 3:\r
1484 self.enterOuterAlt(localctx, 3)\r
1485 self.state = 225\r
1486 self.match(CParser.T__12)\r
1487 pass\r
1488\r
1489 elif la_ == 4:\r
1490 self.enterOuterAlt(localctx, 4)\r
1491 self.state = 226\r
1492 self.match(CParser.T__13)\r
1493 pass\r
1494\r
1495 elif la_ == 5:\r
1496 self.enterOuterAlt(localctx, 5)\r
1497 self.state = 227\r
1498 self.match(CParser.T__14)\r
1499 pass\r
1500\r
1501 elif la_ == 6:\r
1502 self.enterOuterAlt(localctx, 6)\r
1503 self.state = 228\r
1504 self.match(CParser.T__15)\r
1505 pass\r
1506\r
1507 elif la_ == 7:\r
1508 self.enterOuterAlt(localctx, 7)\r
1509 self.state = 229\r
1510 self.match(CParser.T__16)\r
1511 pass\r
1512\r
1513 elif la_ == 8:\r
1514 self.enterOuterAlt(localctx, 8)\r
1515 self.state = 230\r
1516 self.match(CParser.T__17)\r
1517 pass\r
1518\r
1519 elif la_ == 9:\r
1520 self.enterOuterAlt(localctx, 9)\r
1521 self.state = 231\r
1522 self.match(CParser.T__18)\r
1523 pass\r
1524\r
1525 elif la_ == 10:\r
1526 self.enterOuterAlt(localctx, 10)\r
1527 self.state = 232\r
1528 localctx.s = self.struct_or_union_specifier()\r
1529\r
1530 if localctx.s.stop is not None:\r
1531 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
1532\r
1533 pass\r
1534\r
1535 elif la_ == 11:\r
1536 self.enterOuterAlt(localctx, 11)\r
1537 self.state = 235\r
1538 localctx.e = self.enum_specifier()\r
1539\r
1540 if localctx.e.stop is not None:\r
1541 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
1542\r
1543 pass\r
1544\r
1545 elif la_ == 12:\r
1546 self.enterOuterAlt(localctx, 12)\r
1547 self.state = 238\r
1548 self.match(CParser.IDENTIFIER)\r
1549 self.state = 242\r
1550 self._errHandler.sync(self)\r
1551 _alt = self._interp.adaptivePredict(self._input,15,self._ctx)\r
1552 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
1553 if _alt==1:\r
1554 self.state = 239\r
1555 self.type_qualifier() \r
1556 self.state = 244\r
1557 self._errHandler.sync(self)\r
1558 _alt = self._interp.adaptivePredict(self._input,15,self._ctx)\r
1559\r
1560 self.state = 245\r
1561 self.declarator()\r
1562 pass\r
f51461c8 1563\r
22c4de1a
HC
1564 elif la_ == 13:\r
1565 self.enterOuterAlt(localctx, 13)\r
1566 self.state = 246\r
1567 self.type_id()\r
1568 pass\r
f51461c8
LG
1569\r
1570\r
22c4de1a
HC
1571 except RecognitionException as re:\r
1572 localctx.exception = re\r
1573 self._errHandler.reportError(self, re)\r
1574 self._errHandler.recover(self, re)\r
f51461c8 1575 finally:\r
22c4de1a
HC
1576 self.exitRule()\r
1577 return localctx\r
f51461c8 1578\r
22c4de1a 1579 class Type_idContext(ParserRuleContext):\r
f51461c8 1580\r
22c4de1a
HC
1581 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1582 super().__init__(parent, invokingState)\r
1583 self.parser = parser\r
f51461c8 1584\r
22c4de1a
HC
1585 def IDENTIFIER(self):\r
1586 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 1587\r
22c4de1a
HC
1588 def getRuleIndex(self):\r
1589 return CParser.RULE_type_id\r
f51461c8 1590\r
22c4de1a
HC
1591 def enterRule(self, listener:ParseTreeListener):\r
1592 if hasattr( listener, "enterType_id" ):\r
1593 listener.enterType_id(self)\r
f51461c8 1594\r
22c4de1a
HC
1595 def exitRule(self, listener:ParseTreeListener):\r
1596 if hasattr( listener, "exitType_id" ):\r
1597 listener.exitType_id(self)\r
f51461c8 1598\r
f51461c8
LG
1599\r
1600\r
f51461c8 1601\r
22c4de1a 1602 def type_id(self):\r
f51461c8 1603\r
22c4de1a
HC
1604 localctx = CParser.Type_idContext(self, self._ctx, self.state)\r
1605 self.enterRule(localctx, 18, self.RULE_type_id)\r
f51461c8 1606 try:\r
22c4de1a
HC
1607 self.enterOuterAlt(localctx, 1)\r
1608 self.state = 249\r
1609 self.match(CParser.IDENTIFIER)\r
1610 except RecognitionException as re:\r
1611 localctx.exception = re\r
1612 self._errHandler.reportError(self, re)\r
1613 self._errHandler.recover(self, re)\r
f51461c8 1614 finally:\r
22c4de1a
HC
1615 self.exitRule()\r
1616 return localctx\r
f51461c8 1617\r
22c4de1a 1618 class Struct_or_union_specifierContext(ParserRuleContext):\r
f51461c8 1619\r
22c4de1a
HC
1620 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1621 super().__init__(parent, invokingState)\r
1622 self.parser = parser\r
f51461c8 1623\r
22c4de1a
HC
1624 def struct_or_union(self):\r
1625 return self.getTypedRuleContext(CParser.Struct_or_unionContext,0)\r
f51461c8 1626\r
f51461c8 1627\r
22c4de1a
HC
1628 def struct_declaration_list(self):\r
1629 return self.getTypedRuleContext(CParser.Struct_declaration_listContext,0)\r
f51461c8
LG
1630\r
1631\r
22c4de1a
HC
1632 def IDENTIFIER(self):\r
1633 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 1634\r
22c4de1a
HC
1635 def getRuleIndex(self):\r
1636 return CParser.RULE_struct_or_union_specifier\r
f51461c8 1637\r
22c4de1a
HC
1638 def enterRule(self, listener:ParseTreeListener):\r
1639 if hasattr( listener, "enterStruct_or_union_specifier" ):\r
1640 listener.enterStruct_or_union_specifier(self)\r
f51461c8 1641\r
22c4de1a
HC
1642 def exitRule(self, listener:ParseTreeListener):\r
1643 if hasattr( listener, "exitStruct_or_union_specifier" ):\r
1644 listener.exitStruct_or_union_specifier(self)\r
f51461c8 1645\r
f51461c8
LG
1646\r
1647\r
f51461c8 1648\r
22c4de1a 1649 def struct_or_union_specifier(self):\r
f51461c8 1650\r
22c4de1a
HC
1651 localctx = CParser.Struct_or_union_specifierContext(self, self._ctx, self.state)\r
1652 self.enterRule(localctx, 20, self.RULE_struct_or_union_specifier)\r
1653 self._la = 0 # Token type\r
1654 try:\r
1655 self.state = 262\r
1656 self._errHandler.sync(self)\r
1657 la_ = self._interp.adaptivePredict(self._input,18,self._ctx)\r
1658 if la_ == 1:\r
1659 self.enterOuterAlt(localctx, 1)\r
1660 self.state = 251\r
1661 self.struct_or_union()\r
1662 self.state = 253\r
1663 self._errHandler.sync(self)\r
1664 _la = self._input.LA(1)\r
1665 if _la==CParser.IDENTIFIER:\r
1666 self.state = 252\r
1667 self.match(CParser.IDENTIFIER)\r
1668\r
1669\r
1670 self.state = 255\r
1671 self.match(CParser.T__0)\r
1672 self.state = 256\r
1673 self.struct_declaration_list()\r
1674 self.state = 257\r
1675 self.match(CParser.T__19)\r
1676 pass\r
1677\r
1678 elif la_ == 2:\r
1679 self.enterOuterAlt(localctx, 2)\r
1680 self.state = 259\r
1681 self.struct_or_union()\r
1682 self.state = 260\r
1683 self.match(CParser.IDENTIFIER)\r
1684 pass\r
1685\r
1686\r
1687 except RecognitionException as re:\r
1688 localctx.exception = re\r
1689 self._errHandler.reportError(self, re)\r
1690 self._errHandler.recover(self, re)\r
1691 finally:\r
1692 self.exitRule()\r
1693 return localctx\r
f51461c8 1694\r
22c4de1a 1695 class Struct_or_unionContext(ParserRuleContext):\r
f51461c8 1696\r
22c4de1a
HC
1697 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1698 super().__init__(parent, invokingState)\r
1699 self.parser = parser\r
f51461c8
LG
1700\r
1701\r
22c4de1a
HC
1702 def getRuleIndex(self):\r
1703 return CParser.RULE_struct_or_union\r
f51461c8 1704\r
22c4de1a
HC
1705 def enterRule(self, listener:ParseTreeListener):\r
1706 if hasattr( listener, "enterStruct_or_union" ):\r
1707 listener.enterStruct_or_union(self)\r
f51461c8 1708\r
22c4de1a
HC
1709 def exitRule(self, listener:ParseTreeListener):\r
1710 if hasattr( listener, "exitStruct_or_union" ):\r
1711 listener.exitStruct_or_union(self)\r
f51461c8 1712\r
f51461c8 1713\r
f51461c8
LG
1714\r
1715\r
22c4de1a 1716 def struct_or_union(self):\r
f51461c8 1717\r
22c4de1a
HC
1718 localctx = CParser.Struct_or_unionContext(self, self._ctx, self.state)\r
1719 self.enterRule(localctx, 22, self.RULE_struct_or_union)\r
1720 self._la = 0 # Token type\r
1721 try:\r
1722 self.enterOuterAlt(localctx, 1)\r
1723 self.state = 264\r
1724 _la = self._input.LA(1)\r
1725 if not(_la==CParser.T__20 or _la==CParser.T__21):\r
1726 self._errHandler.recoverInline(self)\r
1727 else:\r
1728 self._errHandler.reportMatch(self)\r
1729 self.consume()\r
1730 except RecognitionException as re:\r
1731 localctx.exception = re\r
1732 self._errHandler.reportError(self, re)\r
1733 self._errHandler.recover(self, re)\r
1734 finally:\r
1735 self.exitRule()\r
1736 return localctx\r
f51461c8 1737\r
22c4de1a 1738 class Struct_declaration_listContext(ParserRuleContext):\r
f51461c8 1739\r
22c4de1a
HC
1740 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1741 super().__init__(parent, invokingState)\r
1742 self.parser = parser\r
f51461c8 1743\r
22c4de1a
HC
1744 def struct_declaration(self, i:int=None):\r
1745 if i is None:\r
1746 return self.getTypedRuleContexts(CParser.Struct_declarationContext)\r
1747 else:\r
1748 return self.getTypedRuleContext(CParser.Struct_declarationContext,i)\r
f51461c8
LG
1749\r
1750\r
22c4de1a
HC
1751 def getRuleIndex(self):\r
1752 return CParser.RULE_struct_declaration_list\r
f51461c8 1753\r
22c4de1a
HC
1754 def enterRule(self, listener:ParseTreeListener):\r
1755 if hasattr( listener, "enterStruct_declaration_list" ):\r
1756 listener.enterStruct_declaration_list(self)\r
f51461c8 1757\r
22c4de1a
HC
1758 def exitRule(self, listener:ParseTreeListener):\r
1759 if hasattr( listener, "exitStruct_declaration_list" ):\r
1760 listener.exitStruct_declaration_list(self)\r
f51461c8 1761\r
f51461c8 1762\r
f51461c8
LG
1763\r
1764\r
22c4de1a 1765 def struct_declaration_list(self):\r
f51461c8 1766\r
22c4de1a
HC
1767 localctx = CParser.Struct_declaration_listContext(self, self._ctx, self.state)\r
1768 self.enterRule(localctx, 24, self.RULE_struct_declaration_list)\r
1769 self._la = 0 # Token type\r
1770 try:\r
1771 self.enterOuterAlt(localctx, 1)\r
1772 self.state = 267 \r
1773 self._errHandler.sync(self)\r
1774 _la = self._input.LA(1)\r
1775 while True:\r
1776 self.state = 266\r
1777 self.struct_declaration()\r
1778 self.state = 269 \r
1779 self._errHandler.sync(self)\r
1780 _la = self._input.LA(1)\r
1781 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
1782 break\r
1783\r
1784 except RecognitionException as re:\r
1785 localctx.exception = re\r
1786 self._errHandler.reportError(self, re)\r
1787 self._errHandler.recover(self, re)\r
1788 finally:\r
1789 self.exitRule()\r
1790 return localctx\r
f51461c8 1791\r
22c4de1a 1792 class Struct_declarationContext(ParserRuleContext):\r
f51461c8 1793\r
22c4de1a
HC
1794 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1795 super().__init__(parent, invokingState)\r
1796 self.parser = parser\r
f51461c8 1797\r
22c4de1a
HC
1798 def specifier_qualifier_list(self):\r
1799 return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0)\r
f51461c8 1800\r
f51461c8 1801\r
22c4de1a
HC
1802 def struct_declarator_list(self):\r
1803 return self.getTypedRuleContext(CParser.Struct_declarator_listContext,0)\r
f51461c8 1804\r
f51461c8 1805\r
22c4de1a
HC
1806 def getRuleIndex(self):\r
1807 return CParser.RULE_struct_declaration\r
f51461c8 1808\r
22c4de1a
HC
1809 def enterRule(self, listener:ParseTreeListener):\r
1810 if hasattr( listener, "enterStruct_declaration" ):\r
1811 listener.enterStruct_declaration(self)\r
f51461c8 1812\r
22c4de1a
HC
1813 def exitRule(self, listener:ParseTreeListener):\r
1814 if hasattr( listener, "exitStruct_declaration" ):\r
1815 listener.exitStruct_declaration(self)\r
f51461c8 1816\r
f51461c8
LG
1817\r
1818\r
f51461c8 1819\r
22c4de1a 1820 def struct_declaration(self):\r
f51461c8 1821\r
22c4de1a
HC
1822 localctx = CParser.Struct_declarationContext(self, self._ctx, self.state)\r
1823 self.enterRule(localctx, 26, self.RULE_struct_declaration)\r
1824 try:\r
1825 self.enterOuterAlt(localctx, 1)\r
1826 self.state = 271\r
1827 self.specifier_qualifier_list()\r
1828 self.state = 272\r
1829 self.struct_declarator_list()\r
1830 self.state = 273\r
1831 self.match(CParser.T__1)\r
1832 except RecognitionException as re:\r
1833 localctx.exception = re\r
1834 self._errHandler.reportError(self, re)\r
1835 self._errHandler.recover(self, re)\r
1836 finally:\r
1837 self.exitRule()\r
1838 return localctx\r
f51461c8 1839\r
22c4de1a 1840 class Specifier_qualifier_listContext(ParserRuleContext):\r
f51461c8 1841\r
22c4de1a
HC
1842 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1843 super().__init__(parent, invokingState)\r
1844 self.parser = parser\r
f51461c8 1845\r
22c4de1a
HC
1846 def type_qualifier(self, i:int=None):\r
1847 if i is None:\r
1848 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
1849 else:\r
1850 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
f51461c8 1851\r
f51461c8 1852\r
22c4de1a
HC
1853 def type_specifier(self, i:int=None):\r
1854 if i is None:\r
1855 return self.getTypedRuleContexts(CParser.Type_specifierContext)\r
1856 else:\r
1857 return self.getTypedRuleContext(CParser.Type_specifierContext,i)\r
f51461c8
LG
1858\r
1859\r
22c4de1a
HC
1860 def getRuleIndex(self):\r
1861 return CParser.RULE_specifier_qualifier_list\r
f51461c8 1862\r
22c4de1a
HC
1863 def enterRule(self, listener:ParseTreeListener):\r
1864 if hasattr( listener, "enterSpecifier_qualifier_list" ):\r
1865 listener.enterSpecifier_qualifier_list(self)\r
f51461c8 1866\r
22c4de1a
HC
1867 def exitRule(self, listener:ParseTreeListener):\r
1868 if hasattr( listener, "exitSpecifier_qualifier_list" ):\r
1869 listener.exitSpecifier_qualifier_list(self)\r
f51461c8 1870\r
f51461c8 1871\r
f51461c8
LG
1872\r
1873\r
22c4de1a 1874 def specifier_qualifier_list(self):\r
f51461c8 1875\r
22c4de1a
HC
1876 localctx = CParser.Specifier_qualifier_listContext(self, self._ctx, self.state)\r
1877 self.enterRule(localctx, 28, self.RULE_specifier_qualifier_list)\r
1878 try:\r
1879 self.enterOuterAlt(localctx, 1)\r
1880 self.state = 277 \r
1881 self._errHandler.sync(self)\r
1882 _alt = 1\r
1883 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
1884 if _alt == 1:\r
1885 self.state = 277\r
1886 self._errHandler.sync(self)\r
1887 token = self._input.LA(1)\r
1888 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
1889 self.state = 275\r
1890 self.type_qualifier()\r
1891 pass\r
1892 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
1893 self.state = 276\r
1894 self.type_specifier()\r
1895 pass\r
1896 else:\r
1897 raise NoViableAltException(self)\r
f51461c8
LG
1898\r
1899\r
22c4de1a
HC
1900 else:\r
1901 raise NoViableAltException(self)\r
1902 self.state = 279 \r
1903 self._errHandler.sync(self)\r
1904 _alt = self._interp.adaptivePredict(self._input,21,self._ctx)\r
1905\r
1906 except RecognitionException as re:\r
1907 localctx.exception = re\r
1908 self._errHandler.reportError(self, re)\r
1909 self._errHandler.recover(self, re)\r
1910 finally:\r
1911 self.exitRule()\r
1912 return localctx\r
f51461c8 1913\r
22c4de1a 1914 class Struct_declarator_listContext(ParserRuleContext):\r
f51461c8 1915\r
22c4de1a
HC
1916 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1917 super().__init__(parent, invokingState)\r
1918 self.parser = parser\r
f51461c8 1919\r
22c4de1a
HC
1920 def struct_declarator(self, i:int=None):\r
1921 if i is None:\r
1922 return self.getTypedRuleContexts(CParser.Struct_declaratorContext)\r
1923 else:\r
1924 return self.getTypedRuleContext(CParser.Struct_declaratorContext,i)\r
f51461c8 1925\r
f51461c8 1926\r
22c4de1a
HC
1927 def getRuleIndex(self):\r
1928 return CParser.RULE_struct_declarator_list\r
f51461c8 1929\r
22c4de1a
HC
1930 def enterRule(self, listener:ParseTreeListener):\r
1931 if hasattr( listener, "enterStruct_declarator_list" ):\r
1932 listener.enterStruct_declarator_list(self)\r
f51461c8 1933\r
22c4de1a
HC
1934 def exitRule(self, listener:ParseTreeListener):\r
1935 if hasattr( listener, "exitStruct_declarator_list" ):\r
1936 listener.exitStruct_declarator_list(self)\r
f51461c8
LG
1937\r
1938\r
f51461c8 1939\r
f51461c8 1940\r
22c4de1a 1941 def struct_declarator_list(self):\r
f51461c8 1942\r
22c4de1a
HC
1943 localctx = CParser.Struct_declarator_listContext(self, self._ctx, self.state)\r
1944 self.enterRule(localctx, 30, self.RULE_struct_declarator_list)\r
1945 self._la = 0 # Token type\r
1946 try:\r
1947 self.enterOuterAlt(localctx, 1)\r
1948 self.state = 281\r
1949 self.struct_declarator()\r
1950 self.state = 286\r
1951 self._errHandler.sync(self)\r
1952 _la = self._input.LA(1)\r
1953 while _la==CParser.T__3:\r
1954 self.state = 282\r
1955 self.match(CParser.T__3)\r
1956 self.state = 283\r
1957 self.struct_declarator()\r
1958 self.state = 288\r
1959 self._errHandler.sync(self)\r
1960 _la = self._input.LA(1)\r
1961\r
1962 except RecognitionException as re:\r
1963 localctx.exception = re\r
1964 self._errHandler.reportError(self, re)\r
1965 self._errHandler.recover(self, re)\r
1966 finally:\r
1967 self.exitRule()\r
1968 return localctx\r
f51461c8 1969\r
22c4de1a 1970 class Struct_declaratorContext(ParserRuleContext):\r
f51461c8 1971\r
22c4de1a
HC
1972 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
1973 super().__init__(parent, invokingState)\r
1974 self.parser = parser\r
f51461c8 1975\r
22c4de1a
HC
1976 def declarator(self):\r
1977 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
f51461c8 1978\r
f51461c8 1979\r
22c4de1a
HC
1980 def constant_expression(self):\r
1981 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
f51461c8 1982\r
f51461c8 1983\r
22c4de1a
HC
1984 def getRuleIndex(self):\r
1985 return CParser.RULE_struct_declarator\r
f51461c8 1986\r
22c4de1a
HC
1987 def enterRule(self, listener:ParseTreeListener):\r
1988 if hasattr( listener, "enterStruct_declarator" ):\r
1989 listener.enterStruct_declarator(self)\r
f51461c8 1990\r
22c4de1a
HC
1991 def exitRule(self, listener:ParseTreeListener):\r
1992 if hasattr( listener, "exitStruct_declarator" ):\r
1993 listener.exitStruct_declarator(self)\r
f51461c8 1994\r
f51461c8
LG
1995\r
1996\r
f51461c8 1997\r
22c4de1a 1998 def struct_declarator(self):\r
f51461c8 1999\r
22c4de1a
HC
2000 localctx = CParser.Struct_declaratorContext(self, self._ctx, self.state)\r
2001 self.enterRule(localctx, 32, self.RULE_struct_declarator)\r
2002 self._la = 0 # Token type\r
2003 try:\r
2004 self.state = 296\r
2005 self._errHandler.sync(self)\r
2006 token = self._input.LA(1)\r
2007 if token in [CParser.T__33, CParser.T__34, CParser.T__35, CParser.T__37, CParser.T__41, CParser.IDENTIFIER]:\r
2008 self.enterOuterAlt(localctx, 1)\r
2009 self.state = 289\r
2010 self.declarator()\r
2011 self.state = 292\r
2012 self._errHandler.sync(self)\r
2013 _la = self._input.LA(1)\r
2014 if _la==CParser.T__22:\r
2015 self.state = 290\r
2016 self.match(CParser.T__22)\r
2017 self.state = 291\r
2018 self.constant_expression()\r
f51461c8 2019\r
f51461c8 2020\r
22c4de1a
HC
2021 pass\r
2022 elif token in [CParser.T__22]:\r
2023 self.enterOuterAlt(localctx, 2)\r
2024 self.state = 294\r
2025 self.match(CParser.T__22)\r
2026 self.state = 295\r
2027 self.constant_expression()\r
2028 pass\r
2029 else:\r
2030 raise NoViableAltException(self)\r
f51461c8 2031\r
22c4de1a
HC
2032 except RecognitionException as re:\r
2033 localctx.exception = re\r
2034 self._errHandler.reportError(self, re)\r
2035 self._errHandler.recover(self, re)\r
2036 finally:\r
2037 self.exitRule()\r
2038 return localctx\r
f51461c8 2039\r
22c4de1a 2040 class Enum_specifierContext(ParserRuleContext):\r
f51461c8 2041\r
22c4de1a
HC
2042 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2043 super().__init__(parent, invokingState)\r
2044 self.parser = parser\r
f51461c8 2045\r
22c4de1a
HC
2046 def enumerator_list(self):\r
2047 return self.getTypedRuleContext(CParser.Enumerator_listContext,0)\r
f51461c8 2048\r
f51461c8 2049\r
22c4de1a
HC
2050 def IDENTIFIER(self):\r
2051 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 2052\r
22c4de1a
HC
2053 def getRuleIndex(self):\r
2054 return CParser.RULE_enum_specifier\r
f51461c8 2055\r
22c4de1a
HC
2056 def enterRule(self, listener:ParseTreeListener):\r
2057 if hasattr( listener, "enterEnum_specifier" ):\r
2058 listener.enterEnum_specifier(self)\r
f51461c8 2059\r
22c4de1a
HC
2060 def exitRule(self, listener:ParseTreeListener):\r
2061 if hasattr( listener, "exitEnum_specifier" ):\r
2062 listener.exitEnum_specifier(self)\r
f51461c8 2063\r
f51461c8
LG
2064\r
2065\r
f51461c8 2066\r
22c4de1a 2067 def enum_specifier(self):\r
f51461c8 2068\r
22c4de1a
HC
2069 localctx = CParser.Enum_specifierContext(self, self._ctx, self.state)\r
2070 self.enterRule(localctx, 34, self.RULE_enum_specifier)\r
2071 self._la = 0 # Token type\r
2072 try:\r
2073 self.state = 317\r
2074 self._errHandler.sync(self)\r
2075 la_ = self._interp.adaptivePredict(self._input,27,self._ctx)\r
2076 if la_ == 1:\r
2077 self.enterOuterAlt(localctx, 1)\r
2078 self.state = 298\r
2079 self.match(CParser.T__23)\r
2080 self.state = 299\r
2081 self.match(CParser.T__0)\r
2082 self.state = 300\r
2083 self.enumerator_list()\r
2084 self.state = 302\r
2085 self._errHandler.sync(self)\r
2086 _la = self._input.LA(1)\r
2087 if _la==CParser.T__3:\r
2088 self.state = 301\r
2089 self.match(CParser.T__3)\r
2090\r
2091\r
2092 self.state = 304\r
2093 self.match(CParser.T__19)\r
2094 pass\r
2095\r
2096 elif la_ == 2:\r
2097 self.enterOuterAlt(localctx, 2)\r
2098 self.state = 306\r
2099 self.match(CParser.T__23)\r
2100 self.state = 307\r
2101 self.match(CParser.IDENTIFIER)\r
2102 self.state = 308\r
2103 self.match(CParser.T__0)\r
2104 self.state = 309\r
2105 self.enumerator_list()\r
2106 self.state = 311\r
2107 self._errHandler.sync(self)\r
2108 _la = self._input.LA(1)\r
2109 if _la==CParser.T__3:\r
2110 self.state = 310\r
2111 self.match(CParser.T__3)\r
2112\r
2113\r
2114 self.state = 313\r
2115 self.match(CParser.T__19)\r
2116 pass\r
2117\r
2118 elif la_ == 3:\r
2119 self.enterOuterAlt(localctx, 3)\r
2120 self.state = 315\r
2121 self.match(CParser.T__23)\r
2122 self.state = 316\r
2123 self.match(CParser.IDENTIFIER)\r
2124 pass\r
2125\r
2126\r
2127 except RecognitionException as re:\r
2128 localctx.exception = re\r
2129 self._errHandler.reportError(self, re)\r
2130 self._errHandler.recover(self, re)\r
2131 finally:\r
2132 self.exitRule()\r
2133 return localctx\r
f51461c8 2134\r
22c4de1a 2135 class Enumerator_listContext(ParserRuleContext):\r
f51461c8 2136\r
22c4de1a
HC
2137 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2138 super().__init__(parent, invokingState)\r
2139 self.parser = parser\r
f51461c8 2140\r
22c4de1a
HC
2141 def enumerator(self, i:int=None):\r
2142 if i is None:\r
2143 return self.getTypedRuleContexts(CParser.EnumeratorContext)\r
2144 else:\r
2145 return self.getTypedRuleContext(CParser.EnumeratorContext,i)\r
f51461c8 2146\r
f51461c8 2147\r
22c4de1a
HC
2148 def getRuleIndex(self):\r
2149 return CParser.RULE_enumerator_list\r
f51461c8 2150\r
22c4de1a
HC
2151 def enterRule(self, listener:ParseTreeListener):\r
2152 if hasattr( listener, "enterEnumerator_list" ):\r
2153 listener.enterEnumerator_list(self)\r
f51461c8 2154\r
22c4de1a
HC
2155 def exitRule(self, listener:ParseTreeListener):\r
2156 if hasattr( listener, "exitEnumerator_list" ):\r
2157 listener.exitEnumerator_list(self)\r
f51461c8 2158\r
f51461c8
LG
2159\r
2160\r
f51461c8 2161\r
22c4de1a 2162 def enumerator_list(self):\r
f51461c8 2163\r
22c4de1a
HC
2164 localctx = CParser.Enumerator_listContext(self, self._ctx, self.state)\r
2165 self.enterRule(localctx, 36, self.RULE_enumerator_list)\r
2166 try:\r
2167 self.enterOuterAlt(localctx, 1)\r
2168 self.state = 319\r
2169 self.enumerator()\r
2170 self.state = 324\r
2171 self._errHandler.sync(self)\r
2172 _alt = self._interp.adaptivePredict(self._input,28,self._ctx)\r
2173 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2174 if _alt==1:\r
2175 self.state = 320\r
2176 self.match(CParser.T__3)\r
2177 self.state = 321\r
2178 self.enumerator() \r
2179 self.state = 326\r
2180 self._errHandler.sync(self)\r
2181 _alt = self._interp.adaptivePredict(self._input,28,self._ctx)\r
2182\r
2183 except RecognitionException as re:\r
2184 localctx.exception = re\r
2185 self._errHandler.reportError(self, re)\r
2186 self._errHandler.recover(self, re)\r
2187 finally:\r
2188 self.exitRule()\r
2189 return localctx\r
f51461c8 2190\r
22c4de1a 2191 class EnumeratorContext(ParserRuleContext):\r
f51461c8 2192\r
22c4de1a
HC
2193 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2194 super().__init__(parent, invokingState)\r
2195 self.parser = parser\r
f51461c8 2196\r
22c4de1a
HC
2197 def IDENTIFIER(self):\r
2198 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 2199\r
22c4de1a
HC
2200 def constant_expression(self):\r
2201 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
f51461c8 2202\r
f51461c8 2203\r
22c4de1a
HC
2204 def getRuleIndex(self):\r
2205 return CParser.RULE_enumerator\r
f51461c8 2206\r
22c4de1a
HC
2207 def enterRule(self, listener:ParseTreeListener):\r
2208 if hasattr( listener, "enterEnumerator" ):\r
2209 listener.enterEnumerator(self)\r
f51461c8 2210\r
22c4de1a
HC
2211 def exitRule(self, listener:ParseTreeListener):\r
2212 if hasattr( listener, "exitEnumerator" ):\r
2213 listener.exitEnumerator(self)\r
f51461c8
LG
2214\r
2215\r
f51461c8 2216\r
f51461c8 2217\r
22c4de1a 2218 def enumerator(self):\r
f51461c8 2219\r
22c4de1a
HC
2220 localctx = CParser.EnumeratorContext(self, self._ctx, self.state)\r
2221 self.enterRule(localctx, 38, self.RULE_enumerator)\r
2222 self._la = 0 # Token type\r
2223 try:\r
2224 self.enterOuterAlt(localctx, 1)\r
2225 self.state = 327\r
2226 self.match(CParser.IDENTIFIER)\r
2227 self.state = 330\r
2228 self._errHandler.sync(self)\r
2229 _la = self._input.LA(1)\r
2230 if _la==CParser.T__4:\r
2231 self.state = 328\r
2232 self.match(CParser.T__4)\r
2233 self.state = 329\r
2234 self.constant_expression()\r
2235\r
2236\r
2237 except RecognitionException as re:\r
2238 localctx.exception = re\r
2239 self._errHandler.reportError(self, re)\r
2240 self._errHandler.recover(self, re)\r
2241 finally:\r
2242 self.exitRule()\r
2243 return localctx\r
f51461c8 2244\r
22c4de1a 2245 class Type_qualifierContext(ParserRuleContext):\r
f51461c8 2246\r
22c4de1a
HC
2247 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2248 super().__init__(parent, invokingState)\r
2249 self.parser = parser\r
f51461c8 2250\r
f51461c8 2251\r
22c4de1a
HC
2252 def getRuleIndex(self):\r
2253 return CParser.RULE_type_qualifier\r
f51461c8 2254\r
22c4de1a
HC
2255 def enterRule(self, listener:ParseTreeListener):\r
2256 if hasattr( listener, "enterType_qualifier" ):\r
2257 listener.enterType_qualifier(self)\r
f51461c8 2258\r
22c4de1a
HC
2259 def exitRule(self, listener:ParseTreeListener):\r
2260 if hasattr( listener, "exitType_qualifier" ):\r
2261 listener.exitType_qualifier(self)\r
f51461c8 2262\r
f51461c8
LG
2263\r
2264\r
f51461c8 2265\r
22c4de1a 2266 def type_qualifier(self):\r
f51461c8 2267\r
22c4de1a
HC
2268 localctx = CParser.Type_qualifierContext(self, self._ctx, self.state)\r
2269 self.enterRule(localctx, 40, self.RULE_type_qualifier)\r
2270 self._la = 0 # Token type\r
2271 try:\r
2272 self.enterOuterAlt(localctx, 1)\r
2273 self.state = 332\r
2274 _la = self._input.LA(1)\r
2275 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
2276 self._errHandler.recoverInline(self)\r
2277 else:\r
2278 self._errHandler.reportMatch(self)\r
2279 self.consume()\r
2280 except RecognitionException as re:\r
2281 localctx.exception = re\r
2282 self._errHandler.reportError(self, re)\r
2283 self._errHandler.recover(self, re)\r
2284 finally:\r
2285 self.exitRule()\r
2286 return localctx\r
f51461c8 2287\r
22c4de1a 2288 class DeclaratorContext(ParserRuleContext):\r
f51461c8 2289\r
22c4de1a
HC
2290 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2291 super().__init__(parent, invokingState)\r
2292 self.parser = parser\r
f51461c8 2293\r
22c4de1a
HC
2294 def direct_declarator(self):\r
2295 return self.getTypedRuleContext(CParser.Direct_declaratorContext,0)\r
f51461c8 2296\r
f51461c8 2297\r
22c4de1a
HC
2298 def pointer(self):\r
2299 return self.getTypedRuleContext(CParser.PointerContext,0)\r
f51461c8
LG
2300\r
2301\r
22c4de1a
HC
2302 def getRuleIndex(self):\r
2303 return CParser.RULE_declarator\r
f51461c8 2304\r
22c4de1a
HC
2305 def enterRule(self, listener:ParseTreeListener):\r
2306 if hasattr( listener, "enterDeclarator" ):\r
2307 listener.enterDeclarator(self)\r
f51461c8 2308\r
22c4de1a
HC
2309 def exitRule(self, listener:ParseTreeListener):\r
2310 if hasattr( listener, "exitDeclarator" ):\r
2311 listener.exitDeclarator(self)\r
f51461c8 2312\r
f51461c8 2313\r
f51461c8
LG
2314\r
2315\r
22c4de1a 2316 def declarator(self):\r
f51461c8 2317\r
22c4de1a
HC
2318 localctx = CParser.DeclaratorContext(self, self._ctx, self.state)\r
2319 self.enterRule(localctx, 42, self.RULE_declarator)\r
2320 self._la = 0 # Token type\r
2321 try:\r
2322 self.state = 348\r
2323 self._errHandler.sync(self)\r
2324 la_ = self._interp.adaptivePredict(self._input,34,self._ctx)\r
2325 if la_ == 1:\r
2326 self.enterOuterAlt(localctx, 1)\r
2327 self.state = 335\r
2328 self._errHandler.sync(self)\r
2329 _la = self._input.LA(1)\r
2330 if _la==CParser.T__41:\r
2331 self.state = 334\r
2332 self.pointer()\r
f51461c8
LG
2333\r
2334\r
22c4de1a
HC
2335 self.state = 338\r
2336 self._errHandler.sync(self)\r
2337 _la = self._input.LA(1)\r
2338 if _la==CParser.T__33:\r
2339 self.state = 337\r
2340 self.match(CParser.T__33)\r
f51461c8 2341\r
f51461c8 2342\r
22c4de1a
HC
2343 self.state = 341\r
2344 self._errHandler.sync(self)\r
2345 _la = self._input.LA(1)\r
2346 if _la==CParser.T__34:\r
2347 self.state = 340\r
2348 self.match(CParser.T__34)\r
f51461c8 2349\r
f51461c8 2350\r
22c4de1a
HC
2351 self.state = 344\r
2352 self._errHandler.sync(self)\r
2353 _la = self._input.LA(1)\r
2354 if _la==CParser.T__35:\r
2355 self.state = 343\r
2356 self.match(CParser.T__35)\r
f51461c8
LG
2357\r
2358\r
22c4de1a
HC
2359 self.state = 346\r
2360 self.direct_declarator()\r
2361 pass\r
f51461c8 2362\r
22c4de1a
HC
2363 elif la_ == 2:\r
2364 self.enterOuterAlt(localctx, 2)\r
2365 self.state = 347\r
2366 self.pointer()\r
2367 pass\r
f51461c8
LG
2368\r
2369\r
22c4de1a
HC
2370 except RecognitionException as re:\r
2371 localctx.exception = re\r
2372 self._errHandler.reportError(self, re)\r
2373 self._errHandler.recover(self, re)\r
2374 finally:\r
2375 self.exitRule()\r
2376 return localctx\r
f51461c8 2377\r
22c4de1a 2378 class Direct_declaratorContext(ParserRuleContext):\r
f51461c8 2379\r
22c4de1a
HC
2380 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2381 super().__init__(parent, invokingState)\r
2382 self.parser = parser\r
f51461c8 2383\r
22c4de1a
HC
2384 def IDENTIFIER(self):\r
2385 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 2386\r
22c4de1a
HC
2387 def declarator_suffix(self, i:int=None):\r
2388 if i is None:\r
2389 return self.getTypedRuleContexts(CParser.Declarator_suffixContext)\r
2390 else:\r
2391 return self.getTypedRuleContext(CParser.Declarator_suffixContext,i)\r
f51461c8 2392\r
f51461c8 2393\r
22c4de1a
HC
2394 def declarator(self):\r
2395 return self.getTypedRuleContext(CParser.DeclaratorContext,0)\r
f51461c8 2396\r
f51461c8 2397\r
22c4de1a
HC
2398 def getRuleIndex(self):\r
2399 return CParser.RULE_direct_declarator\r
f51461c8 2400\r
22c4de1a
HC
2401 def enterRule(self, listener:ParseTreeListener):\r
2402 if hasattr( listener, "enterDirect_declarator" ):\r
2403 listener.enterDirect_declarator(self)\r
f51461c8 2404\r
22c4de1a
HC
2405 def exitRule(self, listener:ParseTreeListener):\r
2406 if hasattr( listener, "exitDirect_declarator" ):\r
2407 listener.exitDirect_declarator(self)\r
f51461c8 2408\r
f51461c8
LG
2409\r
2410\r
f51461c8 2411\r
22c4de1a 2412 def direct_declarator(self):\r
f51461c8 2413\r
22c4de1a
HC
2414 localctx = CParser.Direct_declaratorContext(self, self._ctx, self.state)\r
2415 self.enterRule(localctx, 44, self.RULE_direct_declarator)\r
2416 try:\r
2417 self.state = 368\r
2418 self._errHandler.sync(self)\r
2419 token = self._input.LA(1)\r
2420 if token in [CParser.IDENTIFIER]:\r
2421 self.enterOuterAlt(localctx, 1)\r
2422 self.state = 350\r
2423 self.match(CParser.IDENTIFIER)\r
2424 self.state = 354\r
2425 self._errHandler.sync(self)\r
2426 _alt = self._interp.adaptivePredict(self._input,35,self._ctx)\r
2427 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2428 if _alt==1:\r
2429 self.state = 351\r
2430 self.declarator_suffix() \r
2431 self.state = 356\r
2432 self._errHandler.sync(self)\r
2433 _alt = self._interp.adaptivePredict(self._input,35,self._ctx)\r
2434\r
2435 pass\r
2436 elif token in [CParser.T__37]:\r
2437 self.enterOuterAlt(localctx, 2)\r
2438 self.state = 357\r
2439 self.match(CParser.T__37)\r
2440 self.state = 359\r
2441 self._errHandler.sync(self)\r
2442 la_ = self._interp.adaptivePredict(self._input,36,self._ctx)\r
2443 if la_ == 1:\r
2444 self.state = 358\r
2445 self.match(CParser.T__33)\r
2446\r
2447\r
2448 self.state = 361\r
2449 self.declarator()\r
2450 self.state = 362\r
2451 self.match(CParser.T__38)\r
2452 self.state = 364 \r
2453 self._errHandler.sync(self)\r
2454 _alt = 1\r
2455 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2456 if _alt == 1:\r
2457 self.state = 363\r
2458 self.declarator_suffix()\r
f51461c8 2459\r
22c4de1a
HC
2460 else:\r
2461 raise NoViableAltException(self)\r
2462 self.state = 366 \r
2463 self._errHandler.sync(self)\r
2464 _alt = self._interp.adaptivePredict(self._input,37,self._ctx)\r
f51461c8 2465\r
22c4de1a
HC
2466 pass\r
2467 else:\r
2468 raise NoViableAltException(self)\r
f51461c8 2469\r
22c4de1a
HC
2470 except RecognitionException as re:\r
2471 localctx.exception = re\r
2472 self._errHandler.reportError(self, re)\r
2473 self._errHandler.recover(self, re)\r
2474 finally:\r
2475 self.exitRule()\r
2476 return localctx\r
f51461c8 2477\r
22c4de1a 2478 class Declarator_suffixContext(ParserRuleContext):\r
f51461c8 2479\r
22c4de1a
HC
2480 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2481 super().__init__(parent, invokingState)\r
2482 self.parser = parser\r
f51461c8 2483\r
22c4de1a
HC
2484 def constant_expression(self):\r
2485 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
f51461c8 2486\r
f51461c8 2487\r
22c4de1a
HC
2488 def parameter_type_list(self):\r
2489 return self.getTypedRuleContext(CParser.Parameter_type_listContext,0)\r
f51461c8
LG
2490\r
2491\r
22c4de1a
HC
2492 def identifier_list(self):\r
2493 return self.getTypedRuleContext(CParser.Identifier_listContext,0)\r
f51461c8 2494\r
f51461c8 2495\r
22c4de1a
HC
2496 def getRuleIndex(self):\r
2497 return CParser.RULE_declarator_suffix\r
f51461c8 2498\r
22c4de1a
HC
2499 def enterRule(self, listener:ParseTreeListener):\r
2500 if hasattr( listener, "enterDeclarator_suffix" ):\r
2501 listener.enterDeclarator_suffix(self)\r
f51461c8 2502\r
22c4de1a
HC
2503 def exitRule(self, listener:ParseTreeListener):\r
2504 if hasattr( listener, "exitDeclarator_suffix" ):\r
2505 listener.exitDeclarator_suffix(self)\r
f51461c8
LG
2506\r
2507\r
f51461c8 2508\r
f51461c8 2509\r
22c4de1a 2510 def declarator_suffix(self):\r
f51461c8 2511\r
22c4de1a
HC
2512 localctx = CParser.Declarator_suffixContext(self, self._ctx, self.state)\r
2513 self.enterRule(localctx, 46, self.RULE_declarator_suffix)\r
2514 try:\r
2515 self.state = 386\r
2516 self._errHandler.sync(self)\r
2517 la_ = self._interp.adaptivePredict(self._input,39,self._ctx)\r
2518 if la_ == 1:\r
2519 self.enterOuterAlt(localctx, 1)\r
2520 self.state = 370\r
2521 self.match(CParser.T__39)\r
2522 self.state = 371\r
2523 self.constant_expression()\r
2524 self.state = 372\r
2525 self.match(CParser.T__40)\r
2526 pass\r
2527\r
2528 elif la_ == 2:\r
2529 self.enterOuterAlt(localctx, 2)\r
2530 self.state = 374\r
2531 self.match(CParser.T__39)\r
2532 self.state = 375\r
2533 self.match(CParser.T__40)\r
2534 pass\r
2535\r
2536 elif la_ == 3:\r
2537 self.enterOuterAlt(localctx, 3)\r
2538 self.state = 376\r
2539 self.match(CParser.T__37)\r
2540 self.state = 377\r
2541 self.parameter_type_list()\r
2542 self.state = 378\r
2543 self.match(CParser.T__38)\r
2544 pass\r
2545\r
2546 elif la_ == 4:\r
2547 self.enterOuterAlt(localctx, 4)\r
2548 self.state = 380\r
2549 self.match(CParser.T__37)\r
2550 self.state = 381\r
2551 self.identifier_list()\r
2552 self.state = 382\r
2553 self.match(CParser.T__38)\r
2554 pass\r
2555\r
2556 elif la_ == 5:\r
2557 self.enterOuterAlt(localctx, 5)\r
2558 self.state = 384\r
2559 self.match(CParser.T__37)\r
2560 self.state = 385\r
2561 self.match(CParser.T__38)\r
2562 pass\r
2563\r
2564\r
2565 except RecognitionException as re:\r
2566 localctx.exception = re\r
2567 self._errHandler.reportError(self, re)\r
2568 self._errHandler.recover(self, re)\r
2569 finally:\r
2570 self.exitRule()\r
2571 return localctx\r
f51461c8 2572\r
22c4de1a 2573 class PointerContext(ParserRuleContext):\r
f51461c8 2574\r
22c4de1a
HC
2575 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2576 super().__init__(parent, invokingState)\r
2577 self.parser = parser\r
f51461c8 2578\r
22c4de1a
HC
2579 def type_qualifier(self, i:int=None):\r
2580 if i is None:\r
2581 return self.getTypedRuleContexts(CParser.Type_qualifierContext)\r
2582 else:\r
2583 return self.getTypedRuleContext(CParser.Type_qualifierContext,i)\r
f51461c8 2584\r
f51461c8 2585\r
22c4de1a
HC
2586 def pointer(self):\r
2587 return self.getTypedRuleContext(CParser.PointerContext,0)\r
f51461c8 2588\r
f51461c8 2589\r
22c4de1a
HC
2590 def getRuleIndex(self):\r
2591 return CParser.RULE_pointer\r
f51461c8 2592\r
22c4de1a
HC
2593 def enterRule(self, listener:ParseTreeListener):\r
2594 if hasattr( listener, "enterPointer" ):\r
2595 listener.enterPointer(self)\r
f51461c8 2596\r
22c4de1a
HC
2597 def exitRule(self, listener:ParseTreeListener):\r
2598 if hasattr( listener, "exitPointer" ):\r
2599 listener.exitPointer(self)\r
f51461c8 2600\r
f51461c8
LG
2601\r
2602\r
f51461c8 2603\r
22c4de1a 2604 def pointer(self):\r
f51461c8 2605\r
22c4de1a
HC
2606 localctx = CParser.PointerContext(self, self._ctx, self.state)\r
2607 self.enterRule(localctx, 48, self.RULE_pointer)\r
2608 try:\r
2609 self.state = 400\r
2610 self._errHandler.sync(self)\r
2611 la_ = self._interp.adaptivePredict(self._input,42,self._ctx)\r
2612 if la_ == 1:\r
2613 self.enterOuterAlt(localctx, 1)\r
2614 self.state = 388\r
2615 self.match(CParser.T__41)\r
2616 self.state = 390 \r
2617 self._errHandler.sync(self)\r
2618 _alt = 1\r
2619 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2620 if _alt == 1:\r
2621 self.state = 389\r
2622 self.type_qualifier()\r
f51461c8 2623\r
22c4de1a
HC
2624 else:\r
2625 raise NoViableAltException(self)\r
2626 self.state = 392 \r
2627 self._errHandler.sync(self)\r
2628 _alt = self._interp.adaptivePredict(self._input,40,self._ctx)\r
2629\r
2630 self.state = 395\r
2631 self._errHandler.sync(self)\r
2632 la_ = self._interp.adaptivePredict(self._input,41,self._ctx)\r
2633 if la_ == 1:\r
2634 self.state = 394\r
2635 self.pointer()\r
f51461c8 2636\r
f51461c8 2637\r
22c4de1a 2638 pass\r
f51461c8 2639\r
22c4de1a
HC
2640 elif la_ == 2:\r
2641 self.enterOuterAlt(localctx, 2)\r
2642 self.state = 397\r
2643 self.match(CParser.T__41)\r
2644 self.state = 398\r
2645 self.pointer()\r
2646 pass\r
f51461c8 2647\r
22c4de1a
HC
2648 elif la_ == 3:\r
2649 self.enterOuterAlt(localctx, 3)\r
2650 self.state = 399\r
2651 self.match(CParser.T__41)\r
2652 pass\r
f51461c8
LG
2653\r
2654\r
22c4de1a
HC
2655 except RecognitionException as re:\r
2656 localctx.exception = re\r
2657 self._errHandler.reportError(self, re)\r
2658 self._errHandler.recover(self, re)\r
2659 finally:\r
2660 self.exitRule()\r
2661 return localctx\r
f51461c8 2662\r
22c4de1a 2663 class Parameter_type_listContext(ParserRuleContext):\r
f51461c8 2664\r
22c4de1a
HC
2665 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2666 super().__init__(parent, invokingState)\r
2667 self.parser = parser\r
f51461c8 2668\r
22c4de1a
HC
2669 def parameter_list(self):\r
2670 return self.getTypedRuleContext(CParser.Parameter_listContext,0)\r
f51461c8 2671\r
f51461c8 2672\r
22c4de1a
HC
2673 def getRuleIndex(self):\r
2674 return CParser.RULE_parameter_type_list\r
f51461c8 2675\r
22c4de1a
HC
2676 def enterRule(self, listener:ParseTreeListener):\r
2677 if hasattr( listener, "enterParameter_type_list" ):\r
2678 listener.enterParameter_type_list(self)\r
f51461c8 2679\r
22c4de1a
HC
2680 def exitRule(self, listener:ParseTreeListener):\r
2681 if hasattr( listener, "exitParameter_type_list" ):\r
2682 listener.exitParameter_type_list(self)\r
f51461c8
LG
2683\r
2684\r
f51461c8 2685\r
f51461c8 2686\r
22c4de1a 2687 def parameter_type_list(self):\r
f51461c8 2688\r
22c4de1a
HC
2689 localctx = CParser.Parameter_type_listContext(self, self._ctx, self.state)\r
2690 self.enterRule(localctx, 50, self.RULE_parameter_type_list)\r
2691 self._la = 0 # Token type\r
2692 try:\r
2693 self.enterOuterAlt(localctx, 1)\r
2694 self.state = 402\r
2695 self.parameter_list()\r
2696 self.state = 408\r
2697 self._errHandler.sync(self)\r
2698 _la = self._input.LA(1)\r
2699 if _la==CParser.T__3:\r
2700 self.state = 403\r
2701 self.match(CParser.T__3)\r
2702 self.state = 405\r
2703 self._errHandler.sync(self)\r
2704 _la = self._input.LA(1)\r
2705 if _la==CParser.T__28:\r
2706 self.state = 404\r
2707 self.match(CParser.T__28)\r
2708\r
2709\r
2710 self.state = 407\r
2711 self.match(CParser.T__42)\r
2712\r
2713\r
2714 except RecognitionException as re:\r
2715 localctx.exception = re\r
2716 self._errHandler.reportError(self, re)\r
2717 self._errHandler.recover(self, re)\r
2718 finally:\r
2719 self.exitRule()\r
2720 return localctx\r
f51461c8 2721\r
22c4de1a 2722 class Parameter_listContext(ParserRuleContext):\r
f51461c8 2723\r
22c4de1a
HC
2724 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2725 super().__init__(parent, invokingState)\r
2726 self.parser = parser\r
f51461c8 2727\r
22c4de1a
HC
2728 def parameter_declaration(self, i:int=None):\r
2729 if i is None:\r
2730 return self.getTypedRuleContexts(CParser.Parameter_declarationContext)\r
2731 else:\r
2732 return self.getTypedRuleContext(CParser.Parameter_declarationContext,i)\r
f51461c8 2733\r
f51461c8 2734\r
22c4de1a
HC
2735 def getRuleIndex(self):\r
2736 return CParser.RULE_parameter_list\r
f51461c8 2737\r
22c4de1a
HC
2738 def enterRule(self, listener:ParseTreeListener):\r
2739 if hasattr( listener, "enterParameter_list" ):\r
2740 listener.enterParameter_list(self)\r
f51461c8 2741\r
22c4de1a
HC
2742 def exitRule(self, listener:ParseTreeListener):\r
2743 if hasattr( listener, "exitParameter_list" ):\r
2744 listener.exitParameter_list(self)\r
f51461c8 2745\r
f51461c8
LG
2746\r
2747\r
f51461c8 2748\r
22c4de1a 2749 def parameter_list(self):\r
f51461c8 2750\r
22c4de1a
HC
2751 localctx = CParser.Parameter_listContext(self, self._ctx, self.state)\r
2752 self.enterRule(localctx, 52, self.RULE_parameter_list)\r
2753 try:\r
2754 self.enterOuterAlt(localctx, 1)\r
2755 self.state = 410\r
2756 self.parameter_declaration()\r
2757 self.state = 418\r
2758 self._errHandler.sync(self)\r
2759 _alt = self._interp.adaptivePredict(self._input,46,self._ctx)\r
2760 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
2761 if _alt==1:\r
2762 self.state = 411\r
2763 self.match(CParser.T__3)\r
2764 self.state = 413\r
2765 self._errHandler.sync(self)\r
2766 la_ = self._interp.adaptivePredict(self._input,45,self._ctx)\r
2767 if la_ == 1:\r
2768 self.state = 412\r
2769 self.match(CParser.T__28)\r
2770\r
2771\r
2772 self.state = 415\r
2773 self.parameter_declaration() \r
2774 self.state = 420\r
2775 self._errHandler.sync(self)\r
2776 _alt = self._interp.adaptivePredict(self._input,46,self._ctx)\r
2777\r
2778 except RecognitionException as re:\r
2779 localctx.exception = re\r
2780 self._errHandler.reportError(self, re)\r
2781 self._errHandler.recover(self, re)\r
2782 finally:\r
2783 self.exitRule()\r
2784 return localctx\r
f51461c8 2785\r
22c4de1a 2786 class Parameter_declarationContext(ParserRuleContext):\r
f51461c8 2787\r
22c4de1a
HC
2788 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2789 super().__init__(parent, invokingState)\r
2790 self.parser = parser\r
f51461c8 2791\r
22c4de1a
HC
2792 def declaration_specifiers(self):\r
2793 return self.getTypedRuleContext(CParser.Declaration_specifiersContext,0)\r
f51461c8 2794\r
f51461c8 2795\r
22c4de1a
HC
2796 def declarator(self, i:int=None):\r
2797 if i is None:\r
2798 return self.getTypedRuleContexts(CParser.DeclaratorContext)\r
2799 else:\r
2800 return self.getTypedRuleContext(CParser.DeclaratorContext,i)\r
f51461c8
LG
2801\r
2802\r
22c4de1a
HC
2803 def abstract_declarator(self, i:int=None):\r
2804 if i is None:\r
2805 return self.getTypedRuleContexts(CParser.Abstract_declaratorContext)\r
2806 else:\r
2807 return self.getTypedRuleContext(CParser.Abstract_declaratorContext,i)\r
f51461c8 2808\r
f51461c8 2809\r
22c4de1a
HC
2810 def IDENTIFIER(self):\r
2811 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 2812\r
22c4de1a
HC
2813 def pointer(self, i:int=None):\r
2814 if i is None:\r
2815 return self.getTypedRuleContexts(CParser.PointerContext)\r
2816 else:\r
2817 return self.getTypedRuleContext(CParser.PointerContext,i)\r
f51461c8 2818\r
f51461c8 2819\r
22c4de1a
HC
2820 def getRuleIndex(self):\r
2821 return CParser.RULE_parameter_declaration\r
f51461c8 2822\r
22c4de1a
HC
2823 def enterRule(self, listener:ParseTreeListener):\r
2824 if hasattr( listener, "enterParameter_declaration" ):\r
2825 listener.enterParameter_declaration(self)\r
f51461c8 2826\r
22c4de1a
HC
2827 def exitRule(self, listener:ParseTreeListener):\r
2828 if hasattr( listener, "exitParameter_declaration" ):\r
2829 listener.exitParameter_declaration(self)\r
f51461c8
LG
2830\r
2831\r
f51461c8 2832\r
f51461c8 2833\r
22c4de1a 2834 def parameter_declaration(self):\r
f51461c8 2835\r
22c4de1a
HC
2836 localctx = CParser.Parameter_declarationContext(self, self._ctx, self.state)\r
2837 self.enterRule(localctx, 54, self.RULE_parameter_declaration)\r
2838 self._la = 0 # Token type\r
2839 try:\r
2840 self.state = 439\r
2841 self._errHandler.sync(self)\r
2842 la_ = self._interp.adaptivePredict(self._input,51,self._ctx)\r
2843 if la_ == 1:\r
2844 self.enterOuterAlt(localctx, 1)\r
2845 self.state = 421\r
2846 self.declaration_specifiers()\r
2847 self.state = 426\r
2848 self._errHandler.sync(self)\r
2849 _la = self._input.LA(1)\r
2850 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
2851 self.state = 424\r
2852 self._errHandler.sync(self)\r
2853 la_ = self._interp.adaptivePredict(self._input,47,self._ctx)\r
2854 if la_ == 1:\r
2855 self.state = 422\r
2856 self.declarator()\r
2857 pass\r
2858\r
2859 elif la_ == 2:\r
2860 self.state = 423\r
2861 self.abstract_declarator()\r
2862 pass\r
f51461c8 2863\r
f51461c8 2864\r
22c4de1a
HC
2865 self.state = 428\r
2866 self._errHandler.sync(self)\r
2867 _la = self._input.LA(1)\r
f51461c8 2868\r
22c4de1a
HC
2869 self.state = 430\r
2870 self._errHandler.sync(self)\r
2871 _la = self._input.LA(1)\r
2872 if _la==CParser.T__28:\r
2873 self.state = 429\r
2874 self.match(CParser.T__28)\r
f51461c8 2875\r
f51461c8 2876\r
22c4de1a 2877 pass\r
f51461c8 2878\r
22c4de1a
HC
2879 elif la_ == 2:\r
2880 self.enterOuterAlt(localctx, 2)\r
2881 self.state = 435\r
2882 self._errHandler.sync(self)\r
2883 _la = self._input.LA(1)\r
2884 while _la==CParser.T__41:\r
2885 self.state = 432\r
2886 self.pointer()\r
2887 self.state = 437\r
2888 self._errHandler.sync(self)\r
2889 _la = self._input.LA(1)\r
f51461c8 2890\r
22c4de1a
HC
2891 self.state = 438\r
2892 self.match(CParser.IDENTIFIER)\r
2893 pass\r
f51461c8
LG
2894\r
2895\r
22c4de1a
HC
2896 except RecognitionException as re:\r
2897 localctx.exception = re\r
2898 self._errHandler.reportError(self, re)\r
2899 self._errHandler.recover(self, re)\r
2900 finally:\r
2901 self.exitRule()\r
2902 return localctx\r
f51461c8 2903\r
22c4de1a 2904 class Identifier_listContext(ParserRuleContext):\r
f51461c8 2905\r
22c4de1a
HC
2906 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2907 super().__init__(parent, invokingState)\r
2908 self.parser = parser\r
f51461c8 2909\r
22c4de1a
HC
2910 def IDENTIFIER(self, i:int=None):\r
2911 if i is None:\r
2912 return self.getTokens(CParser.IDENTIFIER)\r
2913 else:\r
2914 return self.getToken(CParser.IDENTIFIER, i)\r
f51461c8 2915\r
22c4de1a
HC
2916 def getRuleIndex(self):\r
2917 return CParser.RULE_identifier_list\r
f51461c8 2918\r
22c4de1a
HC
2919 def enterRule(self, listener:ParseTreeListener):\r
2920 if hasattr( listener, "enterIdentifier_list" ):\r
2921 listener.enterIdentifier_list(self)\r
f51461c8 2922\r
22c4de1a
HC
2923 def exitRule(self, listener:ParseTreeListener):\r
2924 if hasattr( listener, "exitIdentifier_list" ):\r
2925 listener.exitIdentifier_list(self)\r
f51461c8 2926\r
f51461c8
LG
2927\r
2928\r
f51461c8 2929\r
22c4de1a 2930 def identifier_list(self):\r
f51461c8 2931\r
22c4de1a
HC
2932 localctx = CParser.Identifier_listContext(self, self._ctx, self.state)\r
2933 self.enterRule(localctx, 56, self.RULE_identifier_list)\r
2934 self._la = 0 # Token type\r
2935 try:\r
2936 self.enterOuterAlt(localctx, 1)\r
2937 self.state = 441\r
2938 self.match(CParser.IDENTIFIER)\r
2939 self.state = 446\r
2940 self._errHandler.sync(self)\r
2941 _la = self._input.LA(1)\r
2942 while _la==CParser.T__3:\r
2943 self.state = 442\r
2944 self.match(CParser.T__3)\r
2945 self.state = 443\r
2946 self.match(CParser.IDENTIFIER)\r
2947 self.state = 448\r
2948 self._errHandler.sync(self)\r
2949 _la = self._input.LA(1)\r
2950\r
2951 except RecognitionException as re:\r
2952 localctx.exception = re\r
2953 self._errHandler.reportError(self, re)\r
2954 self._errHandler.recover(self, re)\r
2955 finally:\r
2956 self.exitRule()\r
2957 return localctx\r
f51461c8 2958\r
22c4de1a 2959 class Type_nameContext(ParserRuleContext):\r
f51461c8 2960\r
22c4de1a
HC
2961 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
2962 super().__init__(parent, invokingState)\r
2963 self.parser = parser\r
f51461c8 2964\r
22c4de1a
HC
2965 def specifier_qualifier_list(self):\r
2966 return self.getTypedRuleContext(CParser.Specifier_qualifier_listContext,0)\r
f51461c8 2967\r
f51461c8 2968\r
22c4de1a
HC
2969 def abstract_declarator(self):\r
2970 return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0)\r
f51461c8
LG
2971\r
2972\r
22c4de1a
HC
2973 def type_id(self):\r
2974 return self.getTypedRuleContext(CParser.Type_idContext,0)\r
f51461c8 2975\r
f51461c8 2976\r
22c4de1a
HC
2977 def getRuleIndex(self):\r
2978 return CParser.RULE_type_name\r
f51461c8 2979\r
22c4de1a
HC
2980 def enterRule(self, listener:ParseTreeListener):\r
2981 if hasattr( listener, "enterType_name" ):\r
2982 listener.enterType_name(self)\r
f51461c8 2983\r
22c4de1a
HC
2984 def exitRule(self, listener:ParseTreeListener):\r
2985 if hasattr( listener, "exitType_name" ):\r
2986 listener.exitType_name(self)\r
f51461c8
LG
2987\r
2988\r
f51461c8 2989\r
f51461c8 2990\r
22c4de1a 2991 def type_name(self):\r
f51461c8 2992\r
22c4de1a
HC
2993 localctx = CParser.Type_nameContext(self, self._ctx, self.state)\r
2994 self.enterRule(localctx, 58, self.RULE_type_name)\r
2995 self._la = 0 # Token type\r
2996 try:\r
2997 self.state = 454\r
2998 self._errHandler.sync(self)\r
2999 la_ = self._interp.adaptivePredict(self._input,54,self._ctx)\r
3000 if la_ == 1:\r
3001 self.enterOuterAlt(localctx, 1)\r
3002 self.state = 449\r
3003 self.specifier_qualifier_list()\r
3004 self.state = 451\r
3005 self._errHandler.sync(self)\r
3006 _la = self._input.LA(1)\r
3007 if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__37) | (1 << CParser.T__39) | (1 << CParser.T__41))) != 0):\r
3008 self.state = 450\r
3009 self.abstract_declarator()\r
f51461c8 3010\r
f51461c8 3011\r
22c4de1a 3012 pass\r
f51461c8 3013\r
22c4de1a
HC
3014 elif la_ == 2:\r
3015 self.enterOuterAlt(localctx, 2)\r
3016 self.state = 453\r
3017 self.type_id()\r
3018 pass\r
f51461c8 3019\r
f51461c8 3020\r
22c4de1a
HC
3021 except RecognitionException as re:\r
3022 localctx.exception = re\r
3023 self._errHandler.reportError(self, re)\r
3024 self._errHandler.recover(self, re)\r
3025 finally:\r
3026 self.exitRule()\r
3027 return localctx\r
f51461c8 3028\r
22c4de1a 3029 class Abstract_declaratorContext(ParserRuleContext):\r
f51461c8 3030\r
22c4de1a
HC
3031 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3032 super().__init__(parent, invokingState)\r
3033 self.parser = parser\r
f51461c8 3034\r
22c4de1a
HC
3035 def pointer(self):\r
3036 return self.getTypedRuleContext(CParser.PointerContext,0)\r
f51461c8
LG
3037\r
3038\r
22c4de1a
HC
3039 def direct_abstract_declarator(self):\r
3040 return self.getTypedRuleContext(CParser.Direct_abstract_declaratorContext,0)\r
f51461c8 3041\r
f51461c8 3042\r
22c4de1a
HC
3043 def getRuleIndex(self):\r
3044 return CParser.RULE_abstract_declarator\r
f51461c8 3045\r
22c4de1a
HC
3046 def enterRule(self, listener:ParseTreeListener):\r
3047 if hasattr( listener, "enterAbstract_declarator" ):\r
3048 listener.enterAbstract_declarator(self)\r
f51461c8 3049\r
22c4de1a
HC
3050 def exitRule(self, listener:ParseTreeListener):\r
3051 if hasattr( listener, "exitAbstract_declarator" ):\r
3052 listener.exitAbstract_declarator(self)\r
f51461c8
LG
3053\r
3054\r
f51461c8 3055\r
f51461c8 3056\r
22c4de1a 3057 def abstract_declarator(self):\r
f51461c8 3058\r
22c4de1a
HC
3059 localctx = CParser.Abstract_declaratorContext(self, self._ctx, self.state)\r
3060 self.enterRule(localctx, 60, self.RULE_abstract_declarator)\r
3061 try:\r
3062 self.state = 461\r
3063 self._errHandler.sync(self)\r
3064 token = self._input.LA(1)\r
3065 if token in [CParser.T__41]:\r
3066 self.enterOuterAlt(localctx, 1)\r
3067 self.state = 456\r
3068 self.pointer()\r
3069 self.state = 458\r
3070 self._errHandler.sync(self)\r
3071 la_ = self._interp.adaptivePredict(self._input,55,self._ctx)\r
3072 if la_ == 1:\r
3073 self.state = 457\r
3074 self.direct_abstract_declarator()\r
f51461c8 3075\r
f51461c8 3076\r
22c4de1a
HC
3077 pass\r
3078 elif token in [CParser.T__37, CParser.T__39]:\r
3079 self.enterOuterAlt(localctx, 2)\r
3080 self.state = 460\r
3081 self.direct_abstract_declarator()\r
3082 pass\r
3083 else:\r
3084 raise NoViableAltException(self)\r
f51461c8 3085\r
22c4de1a
HC
3086 except RecognitionException as re:\r
3087 localctx.exception = re\r
3088 self._errHandler.reportError(self, re)\r
3089 self._errHandler.recover(self, re)\r
3090 finally:\r
3091 self.exitRule()\r
3092 return localctx\r
f51461c8 3093\r
22c4de1a 3094 class Direct_abstract_declaratorContext(ParserRuleContext):\r
f51461c8 3095\r
22c4de1a
HC
3096 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3097 super().__init__(parent, invokingState)\r
3098 self.parser = parser\r
f51461c8 3099\r
22c4de1a
HC
3100 def abstract_declarator(self):\r
3101 return self.getTypedRuleContext(CParser.Abstract_declaratorContext,0)\r
f51461c8 3102\r
f51461c8 3103\r
22c4de1a
HC
3104 def abstract_declarator_suffix(self, i:int=None):\r
3105 if i is None:\r
3106 return self.getTypedRuleContexts(CParser.Abstract_declarator_suffixContext)\r
3107 else:\r
3108 return self.getTypedRuleContext(CParser.Abstract_declarator_suffixContext,i)\r
f51461c8 3109\r
f51461c8 3110\r
22c4de1a
HC
3111 def getRuleIndex(self):\r
3112 return CParser.RULE_direct_abstract_declarator\r
f51461c8 3113\r
22c4de1a
HC
3114 def enterRule(self, listener:ParseTreeListener):\r
3115 if hasattr( listener, "enterDirect_abstract_declarator" ):\r
3116 listener.enterDirect_abstract_declarator(self)\r
f51461c8 3117\r
22c4de1a
HC
3118 def exitRule(self, listener:ParseTreeListener):\r
3119 if hasattr( listener, "exitDirect_abstract_declarator" ):\r
3120 listener.exitDirect_abstract_declarator(self)\r
f51461c8 3121\r
f51461c8
LG
3122\r
3123\r
f51461c8 3124\r
22c4de1a 3125 def direct_abstract_declarator(self):\r
f51461c8 3126\r
22c4de1a
HC
3127 localctx = CParser.Direct_abstract_declaratorContext(self, self._ctx, self.state)\r
3128 self.enterRule(localctx, 62, self.RULE_direct_abstract_declarator)\r
3129 try:\r
3130 self.enterOuterAlt(localctx, 1)\r
3131 self.state = 468\r
3132 self._errHandler.sync(self)\r
3133 la_ = self._interp.adaptivePredict(self._input,57,self._ctx)\r
3134 if la_ == 1:\r
3135 self.state = 463\r
3136 self.match(CParser.T__37)\r
3137 self.state = 464\r
3138 self.abstract_declarator()\r
3139 self.state = 465\r
3140 self.match(CParser.T__38)\r
3141 pass\r
3142\r
3143 elif la_ == 2:\r
3144 self.state = 467\r
3145 self.abstract_declarator_suffix()\r
3146 pass\r
3147\r
3148\r
3149 self.state = 473\r
3150 self._errHandler.sync(self)\r
3151 _alt = self._interp.adaptivePredict(self._input,58,self._ctx)\r
3152 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
3153 if _alt==1:\r
3154 self.state = 470\r
3155 self.abstract_declarator_suffix() \r
3156 self.state = 475\r
3157 self._errHandler.sync(self)\r
3158 _alt = self._interp.adaptivePredict(self._input,58,self._ctx)\r
3159\r
3160 except RecognitionException as re:\r
3161 localctx.exception = re\r
3162 self._errHandler.reportError(self, re)\r
3163 self._errHandler.recover(self, re)\r
3164 finally:\r
3165 self.exitRule()\r
3166 return localctx\r
f51461c8 3167\r
22c4de1a 3168 class Abstract_declarator_suffixContext(ParserRuleContext):\r
f51461c8 3169\r
22c4de1a
HC
3170 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3171 super().__init__(parent, invokingState)\r
3172 self.parser = parser\r
f51461c8 3173\r
22c4de1a
HC
3174 def constant_expression(self):\r
3175 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
f51461c8 3176\r
f51461c8 3177\r
22c4de1a
HC
3178 def parameter_type_list(self):\r
3179 return self.getTypedRuleContext(CParser.Parameter_type_listContext,0)\r
f51461c8
LG
3180\r
3181\r
22c4de1a
HC
3182 def getRuleIndex(self):\r
3183 return CParser.RULE_abstract_declarator_suffix\r
f51461c8 3184\r
22c4de1a
HC
3185 def enterRule(self, listener:ParseTreeListener):\r
3186 if hasattr( listener, "enterAbstract_declarator_suffix" ):\r
3187 listener.enterAbstract_declarator_suffix(self)\r
f51461c8 3188\r
22c4de1a
HC
3189 def exitRule(self, listener:ParseTreeListener):\r
3190 if hasattr( listener, "exitAbstract_declarator_suffix" ):\r
3191 listener.exitAbstract_declarator_suffix(self)\r
f51461c8 3192\r
f51461c8 3193\r
f51461c8
LG
3194\r
3195\r
22c4de1a 3196 def abstract_declarator_suffix(self):\r
f51461c8 3197\r
22c4de1a
HC
3198 localctx = CParser.Abstract_declarator_suffixContext(self, self._ctx, self.state)\r
3199 self.enterRule(localctx, 64, self.RULE_abstract_declarator_suffix)\r
3200 try:\r
3201 self.state = 488\r
3202 self._errHandler.sync(self)\r
3203 la_ = self._interp.adaptivePredict(self._input,59,self._ctx)\r
3204 if la_ == 1:\r
3205 self.enterOuterAlt(localctx, 1)\r
3206 self.state = 476\r
3207 self.match(CParser.T__39)\r
3208 self.state = 477\r
3209 self.match(CParser.T__40)\r
3210 pass\r
3211\r
3212 elif la_ == 2:\r
3213 self.enterOuterAlt(localctx, 2)\r
3214 self.state = 478\r
3215 self.match(CParser.T__39)\r
3216 self.state = 479\r
3217 self.constant_expression()\r
3218 self.state = 480\r
3219 self.match(CParser.T__40)\r
3220 pass\r
3221\r
3222 elif la_ == 3:\r
3223 self.enterOuterAlt(localctx, 3)\r
3224 self.state = 482\r
3225 self.match(CParser.T__37)\r
3226 self.state = 483\r
3227 self.match(CParser.T__38)\r
3228 pass\r
3229\r
3230 elif la_ == 4:\r
3231 self.enterOuterAlt(localctx, 4)\r
3232 self.state = 484\r
3233 self.match(CParser.T__37)\r
3234 self.state = 485\r
3235 self.parameter_type_list()\r
3236 self.state = 486\r
3237 self.match(CParser.T__38)\r
3238 pass\r
3239\r
3240\r
3241 except RecognitionException as re:\r
3242 localctx.exception = re\r
3243 self._errHandler.reportError(self, re)\r
3244 self._errHandler.recover(self, re)\r
3245 finally:\r
3246 self.exitRule()\r
3247 return localctx\r
f51461c8 3248\r
22c4de1a 3249 class InitializerContext(ParserRuleContext):\r
f51461c8 3250\r
22c4de1a
HC
3251 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3252 super().__init__(parent, invokingState)\r
3253 self.parser = parser\r
f51461c8 3254\r
22c4de1a
HC
3255 def assignment_expression(self):\r
3256 return self.getTypedRuleContext(CParser.Assignment_expressionContext,0)\r
f51461c8
LG
3257\r
3258\r
22c4de1a
HC
3259 def initializer_list(self):\r
3260 return self.getTypedRuleContext(CParser.Initializer_listContext,0)\r
f51461c8 3261\r
f51461c8 3262\r
22c4de1a
HC
3263 def getRuleIndex(self):\r
3264 return CParser.RULE_initializer\r
f51461c8 3265\r
22c4de1a
HC
3266 def enterRule(self, listener:ParseTreeListener):\r
3267 if hasattr( listener, "enterInitializer" ):\r
3268 listener.enterInitializer(self)\r
f51461c8 3269\r
22c4de1a
HC
3270 def exitRule(self, listener:ParseTreeListener):\r
3271 if hasattr( listener, "exitInitializer" ):\r
3272 listener.exitInitializer(self)\r
f51461c8
LG
3273\r
3274\r
f51461c8 3275\r
f51461c8 3276\r
22c4de1a 3277 def initializer(self):\r
f51461c8 3278\r
22c4de1a
HC
3279 localctx = CParser.InitializerContext(self, self._ctx, self.state)\r
3280 self.enterRule(localctx, 66, self.RULE_initializer)\r
3281 self._la = 0 # Token type\r
3282 try:\r
3283 self.state = 498\r
3284 self._errHandler.sync(self)\r
3285 token = self._input.LA(1)\r
3286 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
3287 self.enterOuterAlt(localctx, 1)\r
3288 self.state = 490\r
3289 self.assignment_expression()\r
3290 pass\r
3291 elif token in [CParser.T__0]:\r
3292 self.enterOuterAlt(localctx, 2)\r
3293 self.state = 491\r
3294 self.match(CParser.T__0)\r
3295 self.state = 492\r
3296 self.initializer_list()\r
3297 self.state = 494\r
3298 self._errHandler.sync(self)\r
3299 _la = self._input.LA(1)\r
3300 if _la==CParser.T__3:\r
3301 self.state = 493\r
3302 self.match(CParser.T__3)\r
3303\r
3304\r
3305 self.state = 496\r
3306 self.match(CParser.T__19)\r
3307 pass\r
3308 else:\r
3309 raise NoViableAltException(self)\r
f51461c8 3310\r
22c4de1a
HC
3311 except RecognitionException as re:\r
3312 localctx.exception = re\r
3313 self._errHandler.reportError(self, re)\r
3314 self._errHandler.recover(self, re)\r
3315 finally:\r
3316 self.exitRule()\r
3317 return localctx\r
f51461c8 3318\r
22c4de1a 3319 class Initializer_listContext(ParserRuleContext):\r
f51461c8 3320\r
22c4de1a
HC
3321 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3322 super().__init__(parent, invokingState)\r
3323 self.parser = parser\r
f51461c8 3324\r
22c4de1a
HC
3325 def initializer(self, i:int=None):\r
3326 if i is None:\r
3327 return self.getTypedRuleContexts(CParser.InitializerContext)\r
3328 else:\r
3329 return self.getTypedRuleContext(CParser.InitializerContext,i)\r
f51461c8
LG
3330\r
3331\r
22c4de1a
HC
3332 def getRuleIndex(self):\r
3333 return CParser.RULE_initializer_list\r
f51461c8 3334\r
22c4de1a
HC
3335 def enterRule(self, listener:ParseTreeListener):\r
3336 if hasattr( listener, "enterInitializer_list" ):\r
3337 listener.enterInitializer_list(self)\r
f51461c8 3338\r
22c4de1a
HC
3339 def exitRule(self, listener:ParseTreeListener):\r
3340 if hasattr( listener, "exitInitializer_list" ):\r
3341 listener.exitInitializer_list(self)\r
f51461c8 3342\r
f51461c8 3343\r
f51461c8
LG
3344\r
3345\r
22c4de1a 3346 def initializer_list(self):\r
f51461c8 3347\r
22c4de1a
HC
3348 localctx = CParser.Initializer_listContext(self, self._ctx, self.state)\r
3349 self.enterRule(localctx, 68, self.RULE_initializer_list)\r
3350 try:\r
3351 self.enterOuterAlt(localctx, 1)\r
3352 self.state = 500\r
3353 self.initializer()\r
3354 self.state = 505\r
3355 self._errHandler.sync(self)\r
3356 _alt = self._interp.adaptivePredict(self._input,62,self._ctx)\r
3357 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
3358 if _alt==1:\r
3359 self.state = 501\r
3360 self.match(CParser.T__3)\r
3361 self.state = 502\r
3362 self.initializer() \r
3363 self.state = 507\r
3364 self._errHandler.sync(self)\r
3365 _alt = self._interp.adaptivePredict(self._input,62,self._ctx)\r
3366\r
3367 except RecognitionException as re:\r
3368 localctx.exception = re\r
3369 self._errHandler.reportError(self, re)\r
3370 self._errHandler.recover(self, re)\r
3371 finally:\r
3372 self.exitRule()\r
3373 return localctx\r
f51461c8 3374\r
22c4de1a 3375 class Argument_expression_listContext(ParserRuleContext):\r
f51461c8 3376\r
22c4de1a
HC
3377 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3378 super().__init__(parent, invokingState)\r
3379 self.parser = parser\r
f51461c8 3380\r
22c4de1a
HC
3381 def assignment_expression(self, i:int=None):\r
3382 if i is None:\r
3383 return self.getTypedRuleContexts(CParser.Assignment_expressionContext)\r
3384 else:\r
3385 return self.getTypedRuleContext(CParser.Assignment_expressionContext,i)\r
f51461c8 3386\r
f51461c8 3387\r
22c4de1a
HC
3388 def getRuleIndex(self):\r
3389 return CParser.RULE_argument_expression_list\r
f51461c8 3390\r
22c4de1a
HC
3391 def enterRule(self, listener:ParseTreeListener):\r
3392 if hasattr( listener, "enterArgument_expression_list" ):\r
3393 listener.enterArgument_expression_list(self)\r
f51461c8 3394\r
22c4de1a
HC
3395 def exitRule(self, listener:ParseTreeListener):\r
3396 if hasattr( listener, "exitArgument_expression_list" ):\r
3397 listener.exitArgument_expression_list(self)\r
f51461c8
LG
3398\r
3399\r
f51461c8 3400\r
f51461c8 3401\r
22c4de1a 3402 def argument_expression_list(self):\r
f51461c8 3403\r
22c4de1a
HC
3404 localctx = CParser.Argument_expression_listContext(self, self._ctx, self.state)\r
3405 self.enterRule(localctx, 70, self.RULE_argument_expression_list)\r
3406 self._la = 0 # Token type\r
3407 try:\r
3408 self.enterOuterAlt(localctx, 1)\r
3409 self.state = 508\r
3410 self.assignment_expression()\r
3411 self.state = 510\r
3412 self._errHandler.sync(self)\r
3413 _la = self._input.LA(1)\r
3414 if _la==CParser.T__28:\r
3415 self.state = 509\r
3416 self.match(CParser.T__28)\r
3417\r
3418\r
3419 self.state = 519\r
3420 self._errHandler.sync(self)\r
3421 _la = self._input.LA(1)\r
3422 while _la==CParser.T__3:\r
3423 self.state = 512\r
3424 self.match(CParser.T__3)\r
3425 self.state = 513\r
3426 self.assignment_expression()\r
3427 self.state = 515\r
3428 self._errHandler.sync(self)\r
3429 _la = self._input.LA(1)\r
3430 if _la==CParser.T__28:\r
3431 self.state = 514\r
3432 self.match(CParser.T__28)\r
3433\r
3434\r
3435 self.state = 521\r
3436 self._errHandler.sync(self)\r
3437 _la = self._input.LA(1)\r
3438\r
3439 except RecognitionException as re:\r
3440 localctx.exception = re\r
3441 self._errHandler.reportError(self, re)\r
3442 self._errHandler.recover(self, re)\r
3443 finally:\r
3444 self.exitRule()\r
3445 return localctx\r
f51461c8 3446\r
22c4de1a 3447 class Additive_expressionContext(ParserRuleContext):\r
f51461c8 3448\r
22c4de1a
HC
3449 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3450 super().__init__(parent, invokingState)\r
3451 self.parser = parser\r
f51461c8 3452\r
22c4de1a
HC
3453 def multiplicative_expression(self, i:int=None):\r
3454 if i is None:\r
3455 return self.getTypedRuleContexts(CParser.Multiplicative_expressionContext)\r
3456 else:\r
3457 return self.getTypedRuleContext(CParser.Multiplicative_expressionContext,i)\r
f51461c8 3458\r
f51461c8 3459\r
22c4de1a
HC
3460 def getRuleIndex(self):\r
3461 return CParser.RULE_additive_expression\r
f51461c8 3462\r
22c4de1a
HC
3463 def enterRule(self, listener:ParseTreeListener):\r
3464 if hasattr( listener, "enterAdditive_expression" ):\r
3465 listener.enterAdditive_expression(self)\r
f51461c8 3466\r
22c4de1a
HC
3467 def exitRule(self, listener:ParseTreeListener):\r
3468 if hasattr( listener, "exitAdditive_expression" ):\r
3469 listener.exitAdditive_expression(self)\r
f51461c8
LG
3470\r
3471\r
f51461c8 3472\r
f51461c8 3473\r
22c4de1a 3474 def additive_expression(self):\r
f51461c8 3475\r
22c4de1a
HC
3476 localctx = CParser.Additive_expressionContext(self, self._ctx, self.state)\r
3477 self.enterRule(localctx, 72, self.RULE_additive_expression)\r
3478 self._la = 0 # Token type\r
3479 try:\r
3480 self.enterOuterAlt(localctx, 1)\r
3481 self.state = 522\r
3482 self.multiplicative_expression()\r
3483 self.state = 529\r
3484 self._errHandler.sync(self)\r
3485 _la = self._input.LA(1)\r
3486 while _la==CParser.T__43 or _la==CParser.T__44:\r
3487 self.state = 527\r
3488 self._errHandler.sync(self)\r
3489 token = self._input.LA(1)\r
3490 if token in [CParser.T__43]:\r
3491 self.state = 523\r
3492 self.match(CParser.T__43)\r
3493 self.state = 524\r
3494 self.multiplicative_expression()\r
3495 pass\r
3496 elif token in [CParser.T__44]:\r
3497 self.state = 525\r
3498 self.match(CParser.T__44)\r
3499 self.state = 526\r
3500 self.multiplicative_expression()\r
3501 pass\r
3502 else:\r
3503 raise NoViableAltException(self)\r
f51461c8 3504\r
22c4de1a
HC
3505 self.state = 531\r
3506 self._errHandler.sync(self)\r
3507 _la = self._input.LA(1)\r
f51461c8 3508\r
22c4de1a
HC
3509 except RecognitionException as re:\r
3510 localctx.exception = re\r
3511 self._errHandler.reportError(self, re)\r
3512 self._errHandler.recover(self, re)\r
3513 finally:\r
3514 self.exitRule()\r
3515 return localctx\r
f51461c8 3516\r
22c4de1a 3517 class Multiplicative_expressionContext(ParserRuleContext):\r
f51461c8 3518\r
22c4de1a
HC
3519 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3520 super().__init__(parent, invokingState)\r
3521 self.parser = parser\r
f51461c8 3522\r
22c4de1a
HC
3523 def cast_expression(self, i:int=None):\r
3524 if i is None:\r
3525 return self.getTypedRuleContexts(CParser.Cast_expressionContext)\r
3526 else:\r
3527 return self.getTypedRuleContext(CParser.Cast_expressionContext,i)\r
f51461c8 3528\r
f51461c8 3529\r
22c4de1a
HC
3530 def getRuleIndex(self):\r
3531 return CParser.RULE_multiplicative_expression\r
f51461c8 3532\r
22c4de1a
HC
3533 def enterRule(self, listener:ParseTreeListener):\r
3534 if hasattr( listener, "enterMultiplicative_expression" ):\r
3535 listener.enterMultiplicative_expression(self)\r
f51461c8 3536\r
22c4de1a
HC
3537 def exitRule(self, listener:ParseTreeListener):\r
3538 if hasattr( listener, "exitMultiplicative_expression" ):\r
3539 listener.exitMultiplicative_expression(self)\r
f51461c8 3540\r
f51461c8
LG
3541\r
3542\r
f51461c8 3543\r
22c4de1a 3544 def multiplicative_expression(self):\r
f51461c8 3545\r
22c4de1a
HC
3546 localctx = CParser.Multiplicative_expressionContext(self, self._ctx, self.state)\r
3547 self.enterRule(localctx, 74, self.RULE_multiplicative_expression)\r
3548 self._la = 0 # Token type\r
3549 try:\r
3550 self.enterOuterAlt(localctx, 1)\r
3551 self.state = 532\r
3552 self.cast_expression()\r
3553 self.state = 541\r
3554 self._errHandler.sync(self)\r
3555 _la = self._input.LA(1)\r
3556 while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CParser.T__41) | (1 << CParser.T__45) | (1 << CParser.T__46))) != 0):\r
3557 self.state = 539\r
3558 self._errHandler.sync(self)\r
3559 token = self._input.LA(1)\r
3560 if token in [CParser.T__41]:\r
3561 self.state = 533\r
3562 self.match(CParser.T__41)\r
3563 self.state = 534\r
3564 self.cast_expression()\r
3565 pass\r
3566 elif token in [CParser.T__45]:\r
3567 self.state = 535\r
3568 self.match(CParser.T__45)\r
3569 self.state = 536\r
3570 self.cast_expression()\r
3571 pass\r
3572 elif token in [CParser.T__46]:\r
3573 self.state = 537\r
3574 self.match(CParser.T__46)\r
3575 self.state = 538\r
3576 self.cast_expression()\r
3577 pass\r
3578 else:\r
3579 raise NoViableAltException(self)\r
f51461c8 3580\r
22c4de1a
HC
3581 self.state = 543\r
3582 self._errHandler.sync(self)\r
3583 _la = self._input.LA(1)\r
f51461c8 3584\r
22c4de1a
HC
3585 except RecognitionException as re:\r
3586 localctx.exception = re\r
3587 self._errHandler.reportError(self, re)\r
3588 self._errHandler.recover(self, re)\r
3589 finally:\r
3590 self.exitRule()\r
3591 return localctx\r
f51461c8 3592\r
22c4de1a 3593 class Cast_expressionContext(ParserRuleContext):\r
f51461c8 3594\r
22c4de1a
HC
3595 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3596 super().__init__(parent, invokingState)\r
3597 self.parser = parser\r
f51461c8 3598\r
22c4de1a
HC
3599 def type_name(self):\r
3600 return self.getTypedRuleContext(CParser.Type_nameContext,0)\r
f51461c8 3601\r
f51461c8 3602\r
22c4de1a
HC
3603 def cast_expression(self):\r
3604 return self.getTypedRuleContext(CParser.Cast_expressionContext,0)\r
f51461c8 3605\r
f51461c8 3606\r
22c4de1a
HC
3607 def unary_expression(self):\r
3608 return self.getTypedRuleContext(CParser.Unary_expressionContext,0)\r
f51461c8
LG
3609\r
3610\r
22c4de1a
HC
3611 def getRuleIndex(self):\r
3612 return CParser.RULE_cast_expression\r
f51461c8 3613\r
22c4de1a
HC
3614 def enterRule(self, listener:ParseTreeListener):\r
3615 if hasattr( listener, "enterCast_expression" ):\r
3616 listener.enterCast_expression(self)\r
f51461c8 3617\r
22c4de1a
HC
3618 def exitRule(self, listener:ParseTreeListener):\r
3619 if hasattr( listener, "exitCast_expression" ):\r
3620 listener.exitCast_expression(self)\r
f51461c8 3621\r
f51461c8 3622\r
f51461c8
LG
3623\r
3624\r
22c4de1a 3625 def cast_expression(self):\r
f51461c8 3626\r
22c4de1a
HC
3627 localctx = CParser.Cast_expressionContext(self, self._ctx, self.state)\r
3628 self.enterRule(localctx, 76, self.RULE_cast_expression)\r
3629 try:\r
3630 self.state = 550\r
3631 self._errHandler.sync(self)\r
3632 la_ = self._interp.adaptivePredict(self._input,70,self._ctx)\r
3633 if la_ == 1:\r
3634 self.enterOuterAlt(localctx, 1)\r
3635 self.state = 544\r
3636 self.match(CParser.T__37)\r
3637 self.state = 545\r
3638 self.type_name()\r
3639 self.state = 546\r
3640 self.match(CParser.T__38)\r
3641 self.state = 547\r
3642 self.cast_expression()\r
3643 pass\r
f51461c8 3644\r
22c4de1a
HC
3645 elif la_ == 2:\r
3646 self.enterOuterAlt(localctx, 2)\r
3647 self.state = 549\r
3648 self.unary_expression()\r
3649 pass\r
f51461c8 3650\r
f51461c8 3651\r
22c4de1a
HC
3652 except RecognitionException as re:\r
3653 localctx.exception = re\r
3654 self._errHandler.reportError(self, re)\r
3655 self._errHandler.recover(self, re)\r
3656 finally:\r
3657 self.exitRule()\r
3658 return localctx\r
f51461c8 3659\r
22c4de1a 3660 class Unary_expressionContext(ParserRuleContext):\r
f51461c8 3661\r
22c4de1a
HC
3662 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3663 super().__init__(parent, invokingState)\r
3664 self.parser = parser\r
f51461c8 3665\r
22c4de1a
HC
3666 def postfix_expression(self):\r
3667 return self.getTypedRuleContext(CParser.Postfix_expressionContext,0)\r
f51461c8
LG
3668\r
3669\r
22c4de1a
HC
3670 def unary_expression(self):\r
3671 return self.getTypedRuleContext(CParser.Unary_expressionContext,0)\r
f51461c8 3672\r
f51461c8 3673\r
22c4de1a
HC
3674 def unary_operator(self):\r
3675 return self.getTypedRuleContext(CParser.Unary_operatorContext,0)\r
f51461c8 3676\r
f51461c8 3677\r
22c4de1a
HC
3678 def cast_expression(self):\r
3679 return self.getTypedRuleContext(CParser.Cast_expressionContext,0)\r
f51461c8
LG
3680\r
3681\r
22c4de1a
HC
3682 def type_name(self):\r
3683 return self.getTypedRuleContext(CParser.Type_nameContext,0)\r
f51461c8 3684\r
f51461c8 3685\r
22c4de1a
HC
3686 def getRuleIndex(self):\r
3687 return CParser.RULE_unary_expression\r
f51461c8 3688\r
22c4de1a
HC
3689 def enterRule(self, listener:ParseTreeListener):\r
3690 if hasattr( listener, "enterUnary_expression" ):\r
3691 listener.enterUnary_expression(self)\r
f51461c8 3692\r
22c4de1a
HC
3693 def exitRule(self, listener:ParseTreeListener):\r
3694 if hasattr( listener, "exitUnary_expression" ):\r
3695 listener.exitUnary_expression(self)\r
f51461c8
LG
3696\r
3697\r
3698\r
f51461c8 3699\r
22c4de1a 3700 def unary_expression(self):\r
f51461c8 3701\r
22c4de1a
HC
3702 localctx = CParser.Unary_expressionContext(self, self._ctx, self.state)\r
3703 self.enterRule(localctx, 78, self.RULE_unary_expression)\r
3704 try:\r
3705 self.state = 567\r
3706 self._errHandler.sync(self)\r
3707 la_ = self._interp.adaptivePredict(self._input,71,self._ctx)\r
3708 if la_ == 1:\r
3709 self.enterOuterAlt(localctx, 1)\r
3710 self.state = 552\r
3711 self.postfix_expression()\r
3712 pass\r
3713\r
3714 elif la_ == 2:\r
3715 self.enterOuterAlt(localctx, 2)\r
3716 self.state = 553\r
3717 self.match(CParser.T__47)\r
3718 self.state = 554\r
3719 self.unary_expression()\r
3720 pass\r
f51461c8 3721\r
22c4de1a
HC
3722 elif la_ == 3:\r
3723 self.enterOuterAlt(localctx, 3)\r
3724 self.state = 555\r
3725 self.match(CParser.T__48)\r
3726 self.state = 556\r
3727 self.unary_expression()\r
3728 pass\r
f51461c8 3729\r
22c4de1a
HC
3730 elif la_ == 4:\r
3731 self.enterOuterAlt(localctx, 4)\r
3732 self.state = 557\r
3733 self.unary_operator()\r
3734 self.state = 558\r
3735 self.cast_expression()\r
3736 pass\r
f51461c8 3737\r
22c4de1a
HC
3738 elif la_ == 5:\r
3739 self.enterOuterAlt(localctx, 5)\r
3740 self.state = 560\r
3741 self.match(CParser.T__49)\r
3742 self.state = 561\r
3743 self.unary_expression()\r
3744 pass\r
3745\r
3746 elif la_ == 6:\r
3747 self.enterOuterAlt(localctx, 6)\r
3748 self.state = 562\r
3749 self.match(CParser.T__49)\r
3750 self.state = 563\r
3751 self.match(CParser.T__37)\r
3752 self.state = 564\r
3753 self.type_name()\r
3754 self.state = 565\r
3755 self.match(CParser.T__38)\r
3756 pass\r
3757\r
3758\r
3759 except RecognitionException as re:\r
3760 localctx.exception = re\r
3761 self._errHandler.reportError(self, re)\r
3762 self._errHandler.recover(self, re)\r
3763 finally:\r
3764 self.exitRule()\r
3765 return localctx\r
3766\r
3767 class Postfix_expressionContext(ParserRuleContext):\r
3768\r
3769 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3770 super().__init__(parent, invokingState)\r
3771 self.parser = parser\r
3772 self.FuncCallText = ''\r
3773 self.p = None # Primary_expressionContext\r
3774 self.a = None # Token\r
3775 self.c = None # Argument_expression_listContext\r
3776 self.b = None # Token\r
3777 self.x = None # Token\r
3778 self.y = None # Token\r
3779 self.z = None # Token\r
3780\r
3781 def primary_expression(self):\r
3782 return self.getTypedRuleContext(CParser.Primary_expressionContext,0)\r
3783\r
3784\r
3785 def expression(self, i:int=None):\r
3786 if i is None:\r
3787 return self.getTypedRuleContexts(CParser.ExpressionContext)\r
3788 else:\r
3789 return self.getTypedRuleContext(CParser.ExpressionContext,i)\r
f51461c8 3790\r
f51461c8 3791\r
22c4de1a
HC
3792 def macro_parameter_list(self, i:int=None):\r
3793 if i is None:\r
3794 return self.getTypedRuleContexts(CParser.Macro_parameter_listContext)\r
3795 else:\r
3796 return self.getTypedRuleContext(CParser.Macro_parameter_listContext,i)\r
f51461c8
LG
3797\r
3798\r
22c4de1a
HC
3799 def argument_expression_list(self, i:int=None):\r
3800 if i is None:\r
3801 return self.getTypedRuleContexts(CParser.Argument_expression_listContext)\r
3802 else:\r
3803 return self.getTypedRuleContext(CParser.Argument_expression_listContext,i)\r
f51461c8 3804\r
f51461c8 3805\r
22c4de1a
HC
3806 def IDENTIFIER(self, i:int=None):\r
3807 if i is None:\r
3808 return self.getTokens(CParser.IDENTIFIER)\r
3809 else:\r
3810 return self.getToken(CParser.IDENTIFIER, i)\r
f51461c8 3811\r
22c4de1a
HC
3812 def getRuleIndex(self):\r
3813 return CParser.RULE_postfix_expression\r
f51461c8 3814\r
22c4de1a
HC
3815 def enterRule(self, listener:ParseTreeListener):\r
3816 if hasattr( listener, "enterPostfix_expression" ):\r
3817 listener.enterPostfix_expression(self)\r
f51461c8 3818\r
22c4de1a
HC
3819 def exitRule(self, listener:ParseTreeListener):\r
3820 if hasattr( listener, "exitPostfix_expression" ):\r
3821 listener.exitPostfix_expression(self)\r
f51461c8 3822\r
f51461c8 3823\r
f51461c8
LG
3824\r
3825\r
22c4de1a 3826 def postfix_expression(self):\r
f51461c8 3827\r
22c4de1a
HC
3828 localctx = CParser.Postfix_expressionContext(self, self._ctx, self.state)\r
3829 self.enterRule(localctx, 80, self.RULE_postfix_expression)\r
f51461c8 3830\r
22c4de1a
HC
3831 self.FuncCallText=''\r
3832 \r
3833 try:\r
3834 self.enterOuterAlt(localctx, 1)\r
3835 self.state = 569\r
3836 localctx.p = self.primary_expression()\r
3837 self.FuncCallText += (None if localctx.p is None else self._input.getText((localctx.p.start,localctx.p.stop)))\r
3838 self.state = 600\r
3839 self._errHandler.sync(self)\r
3840 _alt = self._interp.adaptivePredict(self._input,73,self._ctx)\r
3841 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
3842 if _alt==1:\r
3843 self.state = 598\r
3844 self._errHandler.sync(self)\r
3845 la_ = self._interp.adaptivePredict(self._input,72,self._ctx)\r
3846 if la_ == 1:\r
3847 self.state = 571\r
3848 self.match(CParser.T__39)\r
3849 self.state = 572\r
3850 self.expression()\r
3851 self.state = 573\r
3852 self.match(CParser.T__40)\r
3853 pass\r
3854\r
3855 elif la_ == 2:\r
3856 self.state = 575\r
3857 self.match(CParser.T__37)\r
3858 self.state = 576\r
3859 localctx.a = self.match(CParser.T__38)\r
3860 self.StoreFunctionCalling((None if localctx.p is None else localctx.p.start).line, (None if localctx.p is None else localctx.p.start).column, (0 if localctx.a is None else localctx.a.line), localctx.a.start.column, self.FuncCallText, '')\r
3861 pass\r
3862\r
3863 elif la_ == 3:\r
3864 self.state = 578\r
3865 self.match(CParser.T__37)\r
3866 self.state = 579\r
3867 localctx.c = self.argument_expression_list()\r
3868 self.state = 580\r
3869 localctx.b = self.match(CParser.T__38)\r
3870 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
3871 pass\r
3872\r
3873 elif la_ == 4:\r
3874 self.state = 583\r
3875 self.match(CParser.T__37)\r
3876 self.state = 584\r
3877 self.macro_parameter_list()\r
3878 self.state = 585\r
3879 self.match(CParser.T__38)\r
3880 pass\r
3881\r
3882 elif la_ == 5:\r
3883 self.state = 587\r
3884 self.match(CParser.T__50)\r
3885 self.state = 588\r
3886 localctx.x = self.match(CParser.IDENTIFIER)\r
3887 self.FuncCallText += '.' + (None if localctx.x is None else localctx.x.text)\r
3888 pass\r
3889\r
3890 elif la_ == 6:\r
3891 self.state = 590\r
3892 self.match(CParser.T__41)\r
3893 self.state = 591\r
3894 localctx.y = self.match(CParser.IDENTIFIER)\r
3895 self.FuncCallText = (None if localctx.y is None else localctx.y.text)\r
3896 pass\r
3897\r
3898 elif la_ == 7:\r
3899 self.state = 593\r
3900 self.match(CParser.T__51)\r
3901 self.state = 594\r
3902 localctx.z = self.match(CParser.IDENTIFIER)\r
3903 self.FuncCallText += '->' + (None if localctx.z is None else localctx.z.text)\r
3904 pass\r
3905\r
3906 elif la_ == 8:\r
3907 self.state = 596\r
3908 self.match(CParser.T__47)\r
3909 pass\r
3910\r
3911 elif la_ == 9:\r
3912 self.state = 597\r
3913 self.match(CParser.T__48)\r
3914 pass\r
3915\r
3916 \r
3917 self.state = 602\r
3918 self._errHandler.sync(self)\r
3919 _alt = self._interp.adaptivePredict(self._input,73,self._ctx)\r
3920\r
3921 except RecognitionException as re:\r
3922 localctx.exception = re\r
3923 self._errHandler.reportError(self, re)\r
3924 self._errHandler.recover(self, re)\r
3925 finally:\r
3926 self.exitRule()\r
3927 return localctx\r
f51461c8 3928\r
22c4de1a 3929 class Macro_parameter_listContext(ParserRuleContext):\r
f51461c8 3930\r
22c4de1a
HC
3931 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3932 super().__init__(parent, invokingState)\r
3933 self.parser = parser\r
f51461c8 3934\r
22c4de1a
HC
3935 def parameter_declaration(self, i:int=None):\r
3936 if i is None:\r
3937 return self.getTypedRuleContexts(CParser.Parameter_declarationContext)\r
3938 else:\r
3939 return self.getTypedRuleContext(CParser.Parameter_declarationContext,i)\r
f51461c8 3940\r
f51461c8 3941\r
22c4de1a
HC
3942 def getRuleIndex(self):\r
3943 return CParser.RULE_macro_parameter_list\r
f51461c8 3944\r
22c4de1a
HC
3945 def enterRule(self, listener:ParseTreeListener):\r
3946 if hasattr( listener, "enterMacro_parameter_list" ):\r
3947 listener.enterMacro_parameter_list(self)\r
f51461c8 3948\r
22c4de1a
HC
3949 def exitRule(self, listener:ParseTreeListener):\r
3950 if hasattr( listener, "exitMacro_parameter_list" ):\r
3951 listener.exitMacro_parameter_list(self)\r
f51461c8 3952\r
f51461c8
LG
3953\r
3954\r
f51461c8 3955\r
22c4de1a 3956 def macro_parameter_list(self):\r
f51461c8 3957\r
22c4de1a
HC
3958 localctx = CParser.Macro_parameter_listContext(self, self._ctx, self.state)\r
3959 self.enterRule(localctx, 82, self.RULE_macro_parameter_list)\r
3960 self._la = 0 # Token type\r
3961 try:\r
3962 self.enterOuterAlt(localctx, 1)\r
3963 self.state = 603\r
3964 self.parameter_declaration()\r
3965 self.state = 608\r
3966 self._errHandler.sync(self)\r
3967 _la = self._input.LA(1)\r
3968 while _la==CParser.T__3:\r
3969 self.state = 604\r
3970 self.match(CParser.T__3)\r
3971 self.state = 605\r
3972 self.parameter_declaration()\r
3973 self.state = 610\r
3974 self._errHandler.sync(self)\r
3975 _la = self._input.LA(1)\r
3976\r
3977 except RecognitionException as re:\r
3978 localctx.exception = re\r
3979 self._errHandler.reportError(self, re)\r
3980 self._errHandler.recover(self, re)\r
3981 finally:\r
3982 self.exitRule()\r
3983 return localctx\r
f51461c8 3984\r
22c4de1a 3985 class Unary_operatorContext(ParserRuleContext):\r
f51461c8 3986\r
22c4de1a
HC
3987 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
3988 super().__init__(parent, invokingState)\r
3989 self.parser = parser\r
f51461c8
LG
3990\r
3991\r
22c4de1a
HC
3992 def getRuleIndex(self):\r
3993 return CParser.RULE_unary_operator\r
f51461c8 3994\r
22c4de1a
HC
3995 def enterRule(self, listener:ParseTreeListener):\r
3996 if hasattr( listener, "enterUnary_operator" ):\r
3997 listener.enterUnary_operator(self)\r
f51461c8 3998\r
22c4de1a
HC
3999 def exitRule(self, listener:ParseTreeListener):\r
4000 if hasattr( listener, "exitUnary_operator" ):\r
4001 listener.exitUnary_operator(self)\r
f51461c8
LG
4002\r
4003\r
f51461c8 4004\r
f51461c8 4005\r
22c4de1a 4006 def unary_operator(self):\r
f51461c8 4007\r
22c4de1a
HC
4008 localctx = CParser.Unary_operatorContext(self, self._ctx, self.state)\r
4009 self.enterRule(localctx, 84, self.RULE_unary_operator)\r
4010 self._la = 0 # Token type\r
4011 try:\r
4012 self.enterOuterAlt(localctx, 1)\r
4013 self.state = 611\r
4014 _la = self._input.LA(1)\r
4015 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
4016 self._errHandler.recoverInline(self)\r
4017 else:\r
4018 self._errHandler.reportMatch(self)\r
4019 self.consume()\r
4020 except RecognitionException as re:\r
4021 localctx.exception = re\r
4022 self._errHandler.reportError(self, re)\r
4023 self._errHandler.recover(self, re)\r
4024 finally:\r
4025 self.exitRule()\r
4026 return localctx\r
f51461c8 4027\r
22c4de1a 4028 class Primary_expressionContext(ParserRuleContext):\r
f51461c8 4029\r
22c4de1a
HC
4030 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4031 super().__init__(parent, invokingState)\r
4032 self.parser = parser\r
f51461c8 4033\r
22c4de1a
HC
4034 def IDENTIFIER(self):\r
4035 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 4036\r
22c4de1a
HC
4037 def constant(self):\r
4038 return self.getTypedRuleContext(CParser.ConstantContext,0)\r
f51461c8
LG
4039\r
4040\r
22c4de1a
HC
4041 def expression(self):\r
4042 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8 4043\r
f51461c8 4044\r
22c4de1a
HC
4045 def getRuleIndex(self):\r
4046 return CParser.RULE_primary_expression\r
f51461c8 4047\r
22c4de1a
HC
4048 def enterRule(self, listener:ParseTreeListener):\r
4049 if hasattr( listener, "enterPrimary_expression" ):\r
4050 listener.enterPrimary_expression(self)\r
f51461c8 4051\r
22c4de1a
HC
4052 def exitRule(self, listener:ParseTreeListener):\r
4053 if hasattr( listener, "exitPrimary_expression" ):\r
4054 listener.exitPrimary_expression(self)\r
f51461c8
LG
4055\r
4056\r
f51461c8 4057\r
f51461c8 4058\r
22c4de1a 4059 def primary_expression(self):\r
f51461c8 4060\r
22c4de1a
HC
4061 localctx = CParser.Primary_expressionContext(self, self._ctx, self.state)\r
4062 self.enterRule(localctx, 86, self.RULE_primary_expression)\r
4063 try:\r
4064 self.state = 619\r
4065 self._errHandler.sync(self)\r
4066 la_ = self._interp.adaptivePredict(self._input,75,self._ctx)\r
4067 if la_ == 1:\r
4068 self.enterOuterAlt(localctx, 1)\r
4069 self.state = 613\r
4070 self.match(CParser.IDENTIFIER)\r
4071 pass\r
4072\r
4073 elif la_ == 2:\r
4074 self.enterOuterAlt(localctx, 2)\r
4075 self.state = 614\r
4076 self.constant()\r
4077 pass\r
4078\r
4079 elif la_ == 3:\r
4080 self.enterOuterAlt(localctx, 3)\r
4081 self.state = 615\r
4082 self.match(CParser.T__37)\r
4083 self.state = 616\r
4084 self.expression()\r
4085 self.state = 617\r
4086 self.match(CParser.T__38)\r
4087 pass\r
4088\r
4089\r
4090 except RecognitionException as re:\r
4091 localctx.exception = re\r
4092 self._errHandler.reportError(self, re)\r
4093 self._errHandler.recover(self, re)\r
4094 finally:\r
4095 self.exitRule()\r
4096 return localctx\r
f51461c8 4097\r
22c4de1a 4098 class ConstantContext(ParserRuleContext):\r
f51461c8 4099\r
22c4de1a
HC
4100 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4101 super().__init__(parent, invokingState)\r
4102 self.parser = parser\r
f51461c8 4103\r
22c4de1a
HC
4104 def HEX_LITERAL(self):\r
4105 return self.getToken(CParser.HEX_LITERAL, 0)\r
f51461c8 4106\r
22c4de1a
HC
4107 def OCTAL_LITERAL(self):\r
4108 return self.getToken(CParser.OCTAL_LITERAL, 0)\r
f51461c8 4109\r
22c4de1a
HC
4110 def DECIMAL_LITERAL(self):\r
4111 return self.getToken(CParser.DECIMAL_LITERAL, 0)\r
f51461c8 4112\r
22c4de1a
HC
4113 def CHARACTER_LITERAL(self):\r
4114 return self.getToken(CParser.CHARACTER_LITERAL, 0)\r
f51461c8 4115\r
22c4de1a
HC
4116 def IDENTIFIER(self, i:int=None):\r
4117 if i is None:\r
4118 return self.getTokens(CParser.IDENTIFIER)\r
4119 else:\r
4120 return self.getToken(CParser.IDENTIFIER, i)\r
f51461c8 4121\r
22c4de1a
HC
4122 def STRING_LITERAL(self, i:int=None):\r
4123 if i is None:\r
4124 return self.getTokens(CParser.STRING_LITERAL)\r
4125 else:\r
4126 return self.getToken(CParser.STRING_LITERAL, i)\r
f51461c8 4127\r
22c4de1a
HC
4128 def FLOATING_POINT_LITERAL(self):\r
4129 return self.getToken(CParser.FLOATING_POINT_LITERAL, 0)\r
f51461c8 4130\r
22c4de1a
HC
4131 def getRuleIndex(self):\r
4132 return CParser.RULE_constant\r
f51461c8 4133\r
22c4de1a
HC
4134 def enterRule(self, listener:ParseTreeListener):\r
4135 if hasattr( listener, "enterConstant" ):\r
4136 listener.enterConstant(self)\r
f51461c8 4137\r
22c4de1a
HC
4138 def exitRule(self, listener:ParseTreeListener):\r
4139 if hasattr( listener, "exitConstant" ):\r
4140 listener.exitConstant(self)\r
f51461c8 4141\r
f51461c8
LG
4142\r
4143\r
4144\r
22c4de1a 4145 def constant(self):\r
f51461c8 4146\r
22c4de1a
HC
4147 localctx = CParser.ConstantContext(self, self._ctx, self.state)\r
4148 self.enterRule(localctx, 88, self.RULE_constant)\r
4149 self._la = 0 # Token type\r
4150 try:\r
4151 self.state = 647\r
4152 self._errHandler.sync(self)\r
4153 token = self._input.LA(1)\r
4154 if token in [CParser.HEX_LITERAL]:\r
4155 self.enterOuterAlt(localctx, 1)\r
4156 self.state = 621\r
4157 self.match(CParser.HEX_LITERAL)\r
4158 pass\r
4159 elif token in [CParser.OCTAL_LITERAL]:\r
4160 self.enterOuterAlt(localctx, 2)\r
4161 self.state = 622\r
4162 self.match(CParser.OCTAL_LITERAL)\r
4163 pass\r
4164 elif token in [CParser.DECIMAL_LITERAL]:\r
4165 self.enterOuterAlt(localctx, 3)\r
4166 self.state = 623\r
4167 self.match(CParser.DECIMAL_LITERAL)\r
4168 pass\r
4169 elif token in [CParser.CHARACTER_LITERAL]:\r
4170 self.enterOuterAlt(localctx, 4)\r
4171 self.state = 624\r
4172 self.match(CParser.CHARACTER_LITERAL)\r
4173 pass\r
4174 elif token in [CParser.IDENTIFIER, CParser.STRING_LITERAL]:\r
4175 self.enterOuterAlt(localctx, 5)\r
4176 self.state = 636 \r
4177 self._errHandler.sync(self)\r
4178 _alt = 1\r
4179 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
4180 if _alt == 1:\r
4181 self.state = 628\r
4182 self._errHandler.sync(self)\r
4183 _la = self._input.LA(1)\r
4184 while _la==CParser.IDENTIFIER:\r
4185 self.state = 625\r
4186 self.match(CParser.IDENTIFIER)\r
4187 self.state = 630\r
4188 self._errHandler.sync(self)\r
4189 _la = self._input.LA(1)\r
4190\r
4191 self.state = 632 \r
4192 self._errHandler.sync(self)\r
4193 _alt = 1\r
4194 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
4195 if _alt == 1:\r
4196 self.state = 631\r
4197 self.match(CParser.STRING_LITERAL)\r
4198\r
4199 else:\r
4200 raise NoViableAltException(self)\r
4201 self.state = 634 \r
4202 self._errHandler.sync(self)\r
4203 _alt = self._interp.adaptivePredict(self._input,77,self._ctx)\r
f51461c8
LG
4204\r
4205\r
4206 else:\r
22c4de1a
HC
4207 raise NoViableAltException(self)\r
4208 self.state = 638 \r
4209 self._errHandler.sync(self)\r
4210 _alt = self._interp.adaptivePredict(self._input,78,self._ctx)\r
4211\r
4212 self.state = 643\r
4213 self._errHandler.sync(self)\r
4214 _la = self._input.LA(1)\r
4215 while _la==CParser.IDENTIFIER:\r
4216 self.state = 640\r
4217 self.match(CParser.IDENTIFIER)\r
4218 self.state = 645\r
4219 self._errHandler.sync(self)\r
4220 _la = self._input.LA(1)\r
4221\r
4222 pass\r
4223 elif token in [CParser.FLOATING_POINT_LITERAL]:\r
4224 self.enterOuterAlt(localctx, 6)\r
4225 self.state = 646\r
4226 self.match(CParser.FLOATING_POINT_LITERAL)\r
4227 pass\r
4228 else:\r
4229 raise NoViableAltException(self)\r
f51461c8 4230\r
22c4de1a
HC
4231 except RecognitionException as re:\r
4232 localctx.exception = re\r
4233 self._errHandler.reportError(self, re)\r
4234 self._errHandler.recover(self, re)\r
4235 finally:\r
4236 self.exitRule()\r
4237 return localctx\r
f51461c8 4238\r
22c4de1a 4239 class ExpressionContext(ParserRuleContext):\r
f51461c8 4240\r
22c4de1a
HC
4241 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4242 super().__init__(parent, invokingState)\r
4243 self.parser = parser\r
f51461c8 4244\r
22c4de1a
HC
4245 def assignment_expression(self, i:int=None):\r
4246 if i is None:\r
4247 return self.getTypedRuleContexts(CParser.Assignment_expressionContext)\r
4248 else:\r
4249 return self.getTypedRuleContext(CParser.Assignment_expressionContext,i)\r
f51461c8
LG
4250\r
4251\r
22c4de1a
HC
4252 def getRuleIndex(self):\r
4253 return CParser.RULE_expression\r
f51461c8 4254\r
22c4de1a
HC
4255 def enterRule(self, listener:ParseTreeListener):\r
4256 if hasattr( listener, "enterExpression" ):\r
4257 listener.enterExpression(self)\r
f51461c8 4258\r
22c4de1a
HC
4259 def exitRule(self, listener:ParseTreeListener):\r
4260 if hasattr( listener, "exitExpression" ):\r
4261 listener.exitExpression(self)\r
f51461c8 4262\r
f51461c8 4263\r
f51461c8 4264\r
f51461c8 4265\r
22c4de1a 4266 def expression(self):\r
f51461c8 4267\r
22c4de1a
HC
4268 localctx = CParser.ExpressionContext(self, self._ctx, self.state)\r
4269 self.enterRule(localctx, 90, self.RULE_expression)\r
4270 self._la = 0 # Token type\r
4271 try:\r
4272 self.enterOuterAlt(localctx, 1)\r
4273 self.state = 649\r
4274 self.assignment_expression()\r
4275 self.state = 654\r
4276 self._errHandler.sync(self)\r
4277 _la = self._input.LA(1)\r
4278 while _la==CParser.T__3:\r
4279 self.state = 650\r
4280 self.match(CParser.T__3)\r
4281 self.state = 651\r
4282 self.assignment_expression()\r
4283 self.state = 656\r
4284 self._errHandler.sync(self)\r
4285 _la = self._input.LA(1)\r
4286\r
4287 except RecognitionException as re:\r
4288 localctx.exception = re\r
4289 self._errHandler.reportError(self, re)\r
4290 self._errHandler.recover(self, re)\r
4291 finally:\r
4292 self.exitRule()\r
4293 return localctx\r
f51461c8 4294\r
22c4de1a 4295 class Constant_expressionContext(ParserRuleContext):\r
f51461c8 4296\r
22c4de1a
HC
4297 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4298 super().__init__(parent, invokingState)\r
4299 self.parser = parser\r
f51461c8 4300\r
22c4de1a
HC
4301 def conditional_expression(self):\r
4302 return self.getTypedRuleContext(CParser.Conditional_expressionContext,0)\r
f51461c8 4303\r
f51461c8 4304\r
22c4de1a
HC
4305 def getRuleIndex(self):\r
4306 return CParser.RULE_constant_expression\r
f51461c8 4307\r
22c4de1a
HC
4308 def enterRule(self, listener:ParseTreeListener):\r
4309 if hasattr( listener, "enterConstant_expression" ):\r
4310 listener.enterConstant_expression(self)\r
f51461c8 4311\r
22c4de1a
HC
4312 def exitRule(self, listener:ParseTreeListener):\r
4313 if hasattr( listener, "exitConstant_expression" ):\r
4314 listener.exitConstant_expression(self)\r
f51461c8 4315\r
f51461c8
LG
4316\r
4317\r
f51461c8 4318\r
22c4de1a 4319 def constant_expression(self):\r
f51461c8 4320\r
22c4de1a
HC
4321 localctx = CParser.Constant_expressionContext(self, self._ctx, self.state)\r
4322 self.enterRule(localctx, 92, self.RULE_constant_expression)\r
4323 try:\r
4324 self.enterOuterAlt(localctx, 1)\r
4325 self.state = 657\r
4326 self.conditional_expression()\r
4327 except RecognitionException as re:\r
4328 localctx.exception = re\r
4329 self._errHandler.reportError(self, re)\r
4330 self._errHandler.recover(self, re)\r
f51461c8 4331 finally:\r
22c4de1a
HC
4332 self.exitRule()\r
4333 return localctx\r
f51461c8 4334\r
22c4de1a 4335 class Assignment_expressionContext(ParserRuleContext):\r
f51461c8 4336\r
22c4de1a
HC
4337 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4338 super().__init__(parent, invokingState)\r
4339 self.parser = parser\r
f51461c8 4340\r
22c4de1a
HC
4341 def lvalue(self):\r
4342 return self.getTypedRuleContext(CParser.LvalueContext,0)\r
f51461c8
LG
4343\r
4344\r
22c4de1a
HC
4345 def assignment_operator(self):\r
4346 return self.getTypedRuleContext(CParser.Assignment_operatorContext,0)\r
f51461c8 4347\r
f51461c8 4348\r
22c4de1a
HC
4349 def assignment_expression(self):\r
4350 return self.getTypedRuleContext(CParser.Assignment_expressionContext,0)\r
f51461c8
LG
4351\r
4352\r
22c4de1a
HC
4353 def conditional_expression(self):\r
4354 return self.getTypedRuleContext(CParser.Conditional_expressionContext,0)\r
f51461c8 4355\r
f51461c8 4356\r
22c4de1a
HC
4357 def getRuleIndex(self):\r
4358 return CParser.RULE_assignment_expression\r
f51461c8 4359\r
22c4de1a
HC
4360 def enterRule(self, listener:ParseTreeListener):\r
4361 if hasattr( listener, "enterAssignment_expression" ):\r
4362 listener.enterAssignment_expression(self)\r
f51461c8 4363\r
22c4de1a
HC
4364 def exitRule(self, listener:ParseTreeListener):\r
4365 if hasattr( listener, "exitAssignment_expression" ):\r
4366 listener.exitAssignment_expression(self)\r
f51461c8
LG
4367\r
4368\r
f51461c8 4369\r
f51461c8 4370\r
22c4de1a 4371 def assignment_expression(self):\r
f51461c8 4372\r
22c4de1a
HC
4373 localctx = CParser.Assignment_expressionContext(self, self._ctx, self.state)\r
4374 self.enterRule(localctx, 94, self.RULE_assignment_expression)\r
f51461c8 4375 try:\r
22c4de1a
HC
4376 self.state = 664\r
4377 self._errHandler.sync(self)\r
4378 la_ = self._interp.adaptivePredict(self._input,82,self._ctx)\r
4379 if la_ == 1:\r
4380 self.enterOuterAlt(localctx, 1)\r
4381 self.state = 659\r
4382 self.lvalue()\r
4383 self.state = 660\r
4384 self.assignment_operator()\r
4385 self.state = 661\r
4386 self.assignment_expression()\r
4387 pass\r
f51461c8 4388\r
22c4de1a
HC
4389 elif la_ == 2:\r
4390 self.enterOuterAlt(localctx, 2)\r
4391 self.state = 663\r
4392 self.conditional_expression()\r
4393 pass\r
f51461c8 4394\r
f51461c8 4395\r
22c4de1a
HC
4396 except RecognitionException as re:\r
4397 localctx.exception = re\r
4398 self._errHandler.reportError(self, re)\r
4399 self._errHandler.recover(self, re)\r
4400 finally:\r
4401 self.exitRule()\r
4402 return localctx\r
f51461c8 4403\r
22c4de1a 4404 class LvalueContext(ParserRuleContext):\r
f51461c8 4405\r
22c4de1a
HC
4406 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4407 super().__init__(parent, invokingState)\r
4408 self.parser = parser\r
f51461c8 4409\r
22c4de1a
HC
4410 def unary_expression(self):\r
4411 return self.getTypedRuleContext(CParser.Unary_expressionContext,0)\r
f51461c8
LG
4412\r
4413\r
22c4de1a
HC
4414 def getRuleIndex(self):\r
4415 return CParser.RULE_lvalue\r
f51461c8 4416\r
22c4de1a
HC
4417 def enterRule(self, listener:ParseTreeListener):\r
4418 if hasattr( listener, "enterLvalue" ):\r
4419 listener.enterLvalue(self)\r
f51461c8 4420\r
22c4de1a
HC
4421 def exitRule(self, listener:ParseTreeListener):\r
4422 if hasattr( listener, "exitLvalue" ):\r
4423 listener.exitLvalue(self)\r
f51461c8 4424\r
f51461c8 4425\r
f51461c8
LG
4426\r
4427\r
22c4de1a 4428 def lvalue(self):\r
f51461c8 4429\r
22c4de1a
HC
4430 localctx = CParser.LvalueContext(self, self._ctx, self.state)\r
4431 self.enterRule(localctx, 96, self.RULE_lvalue)\r
f51461c8 4432 try:\r
22c4de1a
HC
4433 self.enterOuterAlt(localctx, 1)\r
4434 self.state = 666\r
4435 self.unary_expression()\r
4436 except RecognitionException as re:\r
4437 localctx.exception = re\r
4438 self._errHandler.reportError(self, re)\r
4439 self._errHandler.recover(self, re)\r
f51461c8 4440 finally:\r
22c4de1a
HC
4441 self.exitRule()\r
4442 return localctx\r
f51461c8 4443\r
22c4de1a 4444 class Assignment_operatorContext(ParserRuleContext):\r
f51461c8 4445\r
22c4de1a
HC
4446 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4447 super().__init__(parent, invokingState)\r
4448 self.parser = parser\r
f51461c8
LG
4449\r
4450\r
22c4de1a
HC
4451 def getRuleIndex(self):\r
4452 return CParser.RULE_assignment_operator\r
f51461c8 4453\r
22c4de1a
HC
4454 def enterRule(self, listener:ParseTreeListener):\r
4455 if hasattr( listener, "enterAssignment_operator" ):\r
4456 listener.enterAssignment_operator(self)\r
f51461c8 4457\r
22c4de1a
HC
4458 def exitRule(self, listener:ParseTreeListener):\r
4459 if hasattr( listener, "exitAssignment_operator" ):\r
4460 listener.exitAssignment_operator(self)\r
f51461c8
LG
4461\r
4462\r
4463\r
f51461c8 4464\r
22c4de1a 4465 def assignment_operator(self):\r
f51461c8 4466\r
22c4de1a
HC
4467 localctx = CParser.Assignment_operatorContext(self, self._ctx, self.state)\r
4468 self.enterRule(localctx, 98, self.RULE_assignment_operator)\r
4469 self._la = 0 # Token type\r
4470 try:\r
4471 self.enterOuterAlt(localctx, 1)\r
4472 self.state = 668\r
4473 _la = self._input.LA(1)\r
4474 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
4475 self._errHandler.recoverInline(self)\r
4476 else:\r
4477 self._errHandler.reportMatch(self)\r
4478 self.consume()\r
4479 except RecognitionException as re:\r
4480 localctx.exception = re\r
4481 self._errHandler.reportError(self, re)\r
4482 self._errHandler.recover(self, re)\r
4483 finally:\r
4484 self.exitRule()\r
4485 return localctx\r
f51461c8 4486\r
22c4de1a 4487 class Conditional_expressionContext(ParserRuleContext):\r
f51461c8 4488\r
22c4de1a
HC
4489 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4490 super().__init__(parent, invokingState)\r
4491 self.parser = parser\r
4492 self.e = None # Logical_or_expressionContext\r
f51461c8 4493\r
22c4de1a
HC
4494 def logical_or_expression(self):\r
4495 return self.getTypedRuleContext(CParser.Logical_or_expressionContext,0)\r
f51461c8
LG
4496\r
4497\r
22c4de1a
HC
4498 def expression(self):\r
4499 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8
LG
4500\r
4501\r
22c4de1a
HC
4502 def conditional_expression(self):\r
4503 return self.getTypedRuleContext(CParser.Conditional_expressionContext,0)\r
f51461c8 4504\r
f51461c8 4505\r
22c4de1a
HC
4506 def getRuleIndex(self):\r
4507 return CParser.RULE_conditional_expression\r
f51461c8 4508\r
22c4de1a
HC
4509 def enterRule(self, listener:ParseTreeListener):\r
4510 if hasattr( listener, "enterConditional_expression" ):\r
4511 listener.enterConditional_expression(self)\r
f51461c8 4512\r
22c4de1a
HC
4513 def exitRule(self, listener:ParseTreeListener):\r
4514 if hasattr( listener, "exitConditional_expression" ):\r
4515 listener.exitConditional_expression(self)\r
f51461c8
LG
4516\r
4517\r
f51461c8
LG
4518\r
4519\r
22c4de1a 4520 def conditional_expression(self):\r
f51461c8 4521\r
22c4de1a
HC
4522 localctx = CParser.Conditional_expressionContext(self, self._ctx, self.state)\r
4523 self.enterRule(localctx, 100, self.RULE_conditional_expression)\r
4524 self._la = 0 # Token type\r
4525 try:\r
4526 self.enterOuterAlt(localctx, 1)\r
4527 self.state = 670\r
4528 localctx.e = self.logical_or_expression()\r
4529 self.state = 677\r
4530 self._errHandler.sync(self)\r
4531 _la = self._input.LA(1)\r
4532 if _la==CParser.T__65:\r
4533 self.state = 671\r
4534 self.match(CParser.T__65)\r
4535 self.state = 672\r
4536 self.expression()\r
4537 self.state = 673\r
4538 self.match(CParser.T__22)\r
4539 self.state = 674\r
4540 self.conditional_expression()\r
4541 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
f51461c8
LG
4542\r
4543\r
22c4de1a
HC
4544 except RecognitionException as re:\r
4545 localctx.exception = re\r
4546 self._errHandler.reportError(self, re)\r
4547 self._errHandler.recover(self, re)\r
4548 finally:\r
4549 self.exitRule()\r
4550 return localctx\r
f51461c8 4551\r
22c4de1a 4552 class Logical_or_expressionContext(ParserRuleContext):\r
f51461c8 4553\r
22c4de1a
HC
4554 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4555 super().__init__(parent, invokingState)\r
4556 self.parser = parser\r
f51461c8 4557\r
22c4de1a
HC
4558 def logical_and_expression(self, i:int=None):\r
4559 if i is None:\r
4560 return self.getTypedRuleContexts(CParser.Logical_and_expressionContext)\r
4561 else:\r
4562 return self.getTypedRuleContext(CParser.Logical_and_expressionContext,i)\r
f51461c8
LG
4563\r
4564\r
22c4de1a
HC
4565 def getRuleIndex(self):\r
4566 return CParser.RULE_logical_or_expression\r
f51461c8 4567\r
22c4de1a
HC
4568 def enterRule(self, listener:ParseTreeListener):\r
4569 if hasattr( listener, "enterLogical_or_expression" ):\r
4570 listener.enterLogical_or_expression(self)\r
f51461c8 4571\r
22c4de1a
HC
4572 def exitRule(self, listener:ParseTreeListener):\r
4573 if hasattr( listener, "exitLogical_or_expression" ):\r
4574 listener.exitLogical_or_expression(self)\r
f51461c8
LG
4575\r
4576\r
4577\r
f51461c8 4578\r
22c4de1a 4579 def logical_or_expression(self):\r
f51461c8 4580\r
22c4de1a
HC
4581 localctx = CParser.Logical_or_expressionContext(self, self._ctx, self.state)\r
4582 self.enterRule(localctx, 102, self.RULE_logical_or_expression)\r
4583 self._la = 0 # Token type\r
4584 try:\r
4585 self.enterOuterAlt(localctx, 1)\r
4586 self.state = 679\r
4587 self.logical_and_expression()\r
4588 self.state = 684\r
4589 self._errHandler.sync(self)\r
4590 _la = self._input.LA(1)\r
4591 while _la==CParser.T__66:\r
4592 self.state = 680\r
4593 self.match(CParser.T__66)\r
4594 self.state = 681\r
4595 self.logical_and_expression()\r
4596 self.state = 686\r
4597 self._errHandler.sync(self)\r
4598 _la = self._input.LA(1)\r
4599\r
4600 except RecognitionException as re:\r
4601 localctx.exception = re\r
4602 self._errHandler.reportError(self, re)\r
4603 self._errHandler.recover(self, re)\r
4604 finally:\r
4605 self.exitRule()\r
4606 return localctx\r
f51461c8 4607\r
22c4de1a 4608 class Logical_and_expressionContext(ParserRuleContext):\r
f51461c8 4609\r
22c4de1a
HC
4610 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4611 super().__init__(parent, invokingState)\r
4612 self.parser = parser\r
f51461c8 4613\r
22c4de1a
HC
4614 def inclusive_or_expression(self, i:int=None):\r
4615 if i is None:\r
4616 return self.getTypedRuleContexts(CParser.Inclusive_or_expressionContext)\r
4617 else:\r
4618 return self.getTypedRuleContext(CParser.Inclusive_or_expressionContext,i)\r
f51461c8 4619\r
f51461c8 4620\r
22c4de1a
HC
4621 def getRuleIndex(self):\r
4622 return CParser.RULE_logical_and_expression\r
f51461c8 4623\r
22c4de1a
HC
4624 def enterRule(self, listener:ParseTreeListener):\r
4625 if hasattr( listener, "enterLogical_and_expression" ):\r
4626 listener.enterLogical_and_expression(self)\r
f51461c8 4627\r
22c4de1a
HC
4628 def exitRule(self, listener:ParseTreeListener):\r
4629 if hasattr( listener, "exitLogical_and_expression" ):\r
4630 listener.exitLogical_and_expression(self)\r
f51461c8 4631\r
f51461c8
LG
4632\r
4633\r
f51461c8 4634\r
22c4de1a 4635 def logical_and_expression(self):\r
f51461c8 4636\r
22c4de1a
HC
4637 localctx = CParser.Logical_and_expressionContext(self, self._ctx, self.state)\r
4638 self.enterRule(localctx, 104, self.RULE_logical_and_expression)\r
4639 self._la = 0 # Token type\r
4640 try:\r
4641 self.enterOuterAlt(localctx, 1)\r
4642 self.state = 687\r
4643 self.inclusive_or_expression()\r
4644 self.state = 692\r
4645 self._errHandler.sync(self)\r
4646 _la = self._input.LA(1)\r
4647 while _la==CParser.T__67:\r
4648 self.state = 688\r
4649 self.match(CParser.T__67)\r
4650 self.state = 689\r
4651 self.inclusive_or_expression()\r
4652 self.state = 694\r
4653 self._errHandler.sync(self)\r
4654 _la = self._input.LA(1)\r
4655\r
4656 except RecognitionException as re:\r
4657 localctx.exception = re\r
4658 self._errHandler.reportError(self, re)\r
4659 self._errHandler.recover(self, re)\r
4660 finally:\r
4661 self.exitRule()\r
4662 return localctx\r
f51461c8 4663\r
22c4de1a 4664 class Inclusive_or_expressionContext(ParserRuleContext):\r
f51461c8 4665\r
22c4de1a
HC
4666 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4667 super().__init__(parent, invokingState)\r
4668 self.parser = parser\r
f51461c8 4669\r
22c4de1a
HC
4670 def exclusive_or_expression(self, i:int=None):\r
4671 if i is None:\r
4672 return self.getTypedRuleContexts(CParser.Exclusive_or_expressionContext)\r
4673 else:\r
4674 return self.getTypedRuleContext(CParser.Exclusive_or_expressionContext,i)\r
f51461c8
LG
4675\r
4676\r
22c4de1a
HC
4677 def getRuleIndex(self):\r
4678 return CParser.RULE_inclusive_or_expression\r
f51461c8 4679\r
22c4de1a
HC
4680 def enterRule(self, listener:ParseTreeListener):\r
4681 if hasattr( listener, "enterInclusive_or_expression" ):\r
4682 listener.enterInclusive_or_expression(self)\r
f51461c8 4683\r
22c4de1a
HC
4684 def exitRule(self, listener:ParseTreeListener):\r
4685 if hasattr( listener, "exitInclusive_or_expression" ):\r
4686 listener.exitInclusive_or_expression(self)\r
f51461c8
LG
4687\r
4688\r
4689\r
f51461c8 4690\r
22c4de1a 4691 def inclusive_or_expression(self):\r
f51461c8 4692\r
22c4de1a
HC
4693 localctx = CParser.Inclusive_or_expressionContext(self, self._ctx, self.state)\r
4694 self.enterRule(localctx, 106, self.RULE_inclusive_or_expression)\r
4695 self._la = 0 # Token type\r
4696 try:\r
4697 self.enterOuterAlt(localctx, 1)\r
4698 self.state = 695\r
4699 self.exclusive_or_expression()\r
4700 self.state = 700\r
4701 self._errHandler.sync(self)\r
4702 _la = self._input.LA(1)\r
4703 while _la==CParser.T__68:\r
4704 self.state = 696\r
4705 self.match(CParser.T__68)\r
4706 self.state = 697\r
4707 self.exclusive_or_expression()\r
4708 self.state = 702\r
4709 self._errHandler.sync(self)\r
4710 _la = self._input.LA(1)\r
4711\r
4712 except RecognitionException as re:\r
4713 localctx.exception = re\r
4714 self._errHandler.reportError(self, re)\r
4715 self._errHandler.recover(self, re)\r
4716 finally:\r
4717 self.exitRule()\r
4718 return localctx\r
f51461c8 4719\r
22c4de1a 4720 class Exclusive_or_expressionContext(ParserRuleContext):\r
f51461c8 4721\r
22c4de1a
HC
4722 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4723 super().__init__(parent, invokingState)\r
4724 self.parser = parser\r
f51461c8 4725\r
22c4de1a
HC
4726 def and_expression(self, i:int=None):\r
4727 if i is None:\r
4728 return self.getTypedRuleContexts(CParser.And_expressionContext)\r
4729 else:\r
4730 return self.getTypedRuleContext(CParser.And_expressionContext,i)\r
f51461c8 4731\r
f51461c8 4732\r
22c4de1a
HC
4733 def getRuleIndex(self):\r
4734 return CParser.RULE_exclusive_or_expression\r
f51461c8 4735\r
22c4de1a
HC
4736 def enterRule(self, listener:ParseTreeListener):\r
4737 if hasattr( listener, "enterExclusive_or_expression" ):\r
4738 listener.enterExclusive_or_expression(self)\r
f51461c8 4739\r
22c4de1a
HC
4740 def exitRule(self, listener:ParseTreeListener):\r
4741 if hasattr( listener, "exitExclusive_or_expression" ):\r
4742 listener.exitExclusive_or_expression(self)\r
f51461c8 4743\r
f51461c8
LG
4744\r
4745\r
4746\r
22c4de1a 4747 def exclusive_or_expression(self):\r
f51461c8 4748\r
22c4de1a
HC
4749 localctx = CParser.Exclusive_or_expressionContext(self, self._ctx, self.state)\r
4750 self.enterRule(localctx, 108, self.RULE_exclusive_or_expression)\r
4751 self._la = 0 # Token type\r
4752 try:\r
4753 self.enterOuterAlt(localctx, 1)\r
4754 self.state = 703\r
4755 self.and_expression()\r
4756 self.state = 708\r
4757 self._errHandler.sync(self)\r
4758 _la = self._input.LA(1)\r
4759 while _la==CParser.T__69:\r
4760 self.state = 704\r
4761 self.match(CParser.T__69)\r
4762 self.state = 705\r
4763 self.and_expression()\r
4764 self.state = 710\r
4765 self._errHandler.sync(self)\r
4766 _la = self._input.LA(1)\r
4767\r
4768 except RecognitionException as re:\r
4769 localctx.exception = re\r
4770 self._errHandler.reportError(self, re)\r
4771 self._errHandler.recover(self, re)\r
4772 finally:\r
4773 self.exitRule()\r
4774 return localctx\r
f51461c8 4775\r
22c4de1a 4776 class And_expressionContext(ParserRuleContext):\r
f51461c8 4777\r
22c4de1a
HC
4778 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4779 super().__init__(parent, invokingState)\r
4780 self.parser = parser\r
f51461c8 4781\r
22c4de1a
HC
4782 def equality_expression(self, i:int=None):\r
4783 if i is None:\r
4784 return self.getTypedRuleContexts(CParser.Equality_expressionContext)\r
4785 else:\r
4786 return self.getTypedRuleContext(CParser.Equality_expressionContext,i)\r
f51461c8 4787\r
f51461c8 4788\r
22c4de1a
HC
4789 def getRuleIndex(self):\r
4790 return CParser.RULE_and_expression\r
f51461c8 4791\r
22c4de1a
HC
4792 def enterRule(self, listener:ParseTreeListener):\r
4793 if hasattr( listener, "enterAnd_expression" ):\r
4794 listener.enterAnd_expression(self)\r
f51461c8 4795\r
22c4de1a
HC
4796 def exitRule(self, listener:ParseTreeListener):\r
4797 if hasattr( listener, "exitAnd_expression" ):\r
4798 listener.exitAnd_expression(self)\r
f51461c8
LG
4799\r
4800\r
f51461c8
LG
4801\r
4802\r
22c4de1a 4803 def and_expression(self):\r
f51461c8 4804\r
22c4de1a
HC
4805 localctx = CParser.And_expressionContext(self, self._ctx, self.state)\r
4806 self.enterRule(localctx, 110, self.RULE_and_expression)\r
4807 self._la = 0 # Token type\r
4808 try:\r
4809 self.enterOuterAlt(localctx, 1)\r
4810 self.state = 711\r
4811 self.equality_expression()\r
4812 self.state = 716\r
4813 self._errHandler.sync(self)\r
4814 _la = self._input.LA(1)\r
4815 while _la==CParser.T__52:\r
4816 self.state = 712\r
4817 self.match(CParser.T__52)\r
4818 self.state = 713\r
4819 self.equality_expression()\r
4820 self.state = 718\r
4821 self._errHandler.sync(self)\r
4822 _la = self._input.LA(1)\r
4823\r
4824 except RecognitionException as re:\r
4825 localctx.exception = re\r
4826 self._errHandler.reportError(self, re)\r
4827 self._errHandler.recover(self, re)\r
4828 finally:\r
4829 self.exitRule()\r
4830 return localctx\r
f51461c8 4831\r
22c4de1a 4832 class Equality_expressionContext(ParserRuleContext):\r
f51461c8 4833\r
22c4de1a
HC
4834 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4835 super().__init__(parent, invokingState)\r
4836 self.parser = parser\r
f51461c8 4837\r
22c4de1a
HC
4838 def relational_expression(self, i:int=None):\r
4839 if i is None:\r
4840 return self.getTypedRuleContexts(CParser.Relational_expressionContext)\r
4841 else:\r
4842 return self.getTypedRuleContext(CParser.Relational_expressionContext,i)\r
f51461c8
LG
4843\r
4844\r
22c4de1a
HC
4845 def getRuleIndex(self):\r
4846 return CParser.RULE_equality_expression\r
f51461c8 4847\r
22c4de1a
HC
4848 def enterRule(self, listener:ParseTreeListener):\r
4849 if hasattr( listener, "enterEquality_expression" ):\r
4850 listener.enterEquality_expression(self)\r
f51461c8 4851\r
22c4de1a
HC
4852 def exitRule(self, listener:ParseTreeListener):\r
4853 if hasattr( listener, "exitEquality_expression" ):\r
4854 listener.exitEquality_expression(self)\r
f51461c8
LG
4855\r
4856\r
4857\r
f51461c8 4858\r
22c4de1a 4859 def equality_expression(self):\r
f51461c8 4860\r
22c4de1a
HC
4861 localctx = CParser.Equality_expressionContext(self, self._ctx, self.state)\r
4862 self.enterRule(localctx, 112, self.RULE_equality_expression)\r
4863 self._la = 0 # Token type\r
4864 try:\r
4865 self.enterOuterAlt(localctx, 1)\r
4866 self.state = 719\r
4867 self.relational_expression()\r
4868 self.state = 724\r
4869 self._errHandler.sync(self)\r
4870 _la = self._input.LA(1)\r
4871 while _la==CParser.T__70 or _la==CParser.T__71:\r
4872 self.state = 720\r
4873 _la = self._input.LA(1)\r
4874 if not(_la==CParser.T__70 or _la==CParser.T__71):\r
4875 self._errHandler.recoverInline(self)\r
4876 else:\r
4877 self._errHandler.reportMatch(self)\r
4878 self.consume()\r
4879 self.state = 721\r
4880 self.relational_expression()\r
4881 self.state = 726\r
4882 self._errHandler.sync(self)\r
4883 _la = self._input.LA(1)\r
4884\r
4885 except RecognitionException as re:\r
4886 localctx.exception = re\r
4887 self._errHandler.reportError(self, re)\r
4888 self._errHandler.recover(self, re)\r
4889 finally:\r
4890 self.exitRule()\r
4891 return localctx\r
f51461c8 4892\r
22c4de1a 4893 class Relational_expressionContext(ParserRuleContext):\r
f51461c8 4894\r
22c4de1a
HC
4895 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4896 super().__init__(parent, invokingState)\r
4897 self.parser = parser\r
f51461c8 4898\r
22c4de1a
HC
4899 def shift_expression(self, i:int=None):\r
4900 if i is None:\r
4901 return self.getTypedRuleContexts(CParser.Shift_expressionContext)\r
4902 else:\r
4903 return self.getTypedRuleContext(CParser.Shift_expressionContext,i)\r
f51461c8
LG
4904\r
4905\r
22c4de1a
HC
4906 def getRuleIndex(self):\r
4907 return CParser.RULE_relational_expression\r
f51461c8 4908\r
22c4de1a
HC
4909 def enterRule(self, listener:ParseTreeListener):\r
4910 if hasattr( listener, "enterRelational_expression" ):\r
4911 listener.enterRelational_expression(self)\r
f51461c8 4912\r
22c4de1a
HC
4913 def exitRule(self, listener:ParseTreeListener):\r
4914 if hasattr( listener, "exitRelational_expression" ):\r
4915 listener.exitRelational_expression(self)\r
f51461c8 4916\r
f51461c8
LG
4917\r
4918\r
f51461c8 4919\r
22c4de1a 4920 def relational_expression(self):\r
f51461c8 4921\r
22c4de1a
HC
4922 localctx = CParser.Relational_expressionContext(self, self._ctx, self.state)\r
4923 self.enterRule(localctx, 114, self.RULE_relational_expression)\r
4924 self._la = 0 # Token type\r
4925 try:\r
4926 self.enterOuterAlt(localctx, 1)\r
4927 self.state = 727\r
4928 self.shift_expression()\r
4929 self.state = 732\r
4930 self._errHandler.sync(self)\r
4931 _la = self._input.LA(1)\r
4932 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
4933 self.state = 728\r
4934 _la = self._input.LA(1)\r
4935 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
4936 self._errHandler.recoverInline(self)\r
4937 else:\r
4938 self._errHandler.reportMatch(self)\r
4939 self.consume()\r
4940 self.state = 729\r
4941 self.shift_expression()\r
4942 self.state = 734\r
4943 self._errHandler.sync(self)\r
4944 _la = self._input.LA(1)\r
4945\r
4946 except RecognitionException as re:\r
4947 localctx.exception = re\r
4948 self._errHandler.reportError(self, re)\r
4949 self._errHandler.recover(self, re)\r
4950 finally:\r
4951 self.exitRule()\r
4952 return localctx\r
f51461c8 4953\r
22c4de1a 4954 class Shift_expressionContext(ParserRuleContext):\r
f51461c8 4955\r
22c4de1a
HC
4956 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
4957 super().__init__(parent, invokingState)\r
4958 self.parser = parser\r
f51461c8 4959\r
22c4de1a
HC
4960 def additive_expression(self, i:int=None):\r
4961 if i is None:\r
4962 return self.getTypedRuleContexts(CParser.Additive_expressionContext)\r
4963 else:\r
4964 return self.getTypedRuleContext(CParser.Additive_expressionContext,i)\r
f51461c8
LG
4965\r
4966\r
22c4de1a
HC
4967 def getRuleIndex(self):\r
4968 return CParser.RULE_shift_expression\r
f51461c8 4969\r
22c4de1a
HC
4970 def enterRule(self, listener:ParseTreeListener):\r
4971 if hasattr( listener, "enterShift_expression" ):\r
4972 listener.enterShift_expression(self)\r
f51461c8 4973\r
22c4de1a
HC
4974 def exitRule(self, listener:ParseTreeListener):\r
4975 if hasattr( listener, "exitShift_expression" ):\r
4976 listener.exitShift_expression(self)\r
f51461c8 4977\r
f51461c8
LG
4978\r
4979\r
4980\r
22c4de1a 4981 def shift_expression(self):\r
f51461c8 4982\r
22c4de1a
HC
4983 localctx = CParser.Shift_expressionContext(self, self._ctx, self.state)\r
4984 self.enterRule(localctx, 116, self.RULE_shift_expression)\r
4985 self._la = 0 # Token type\r
4986 try:\r
4987 self.enterOuterAlt(localctx, 1)\r
4988 self.state = 735\r
4989 self.additive_expression()\r
4990 self.state = 740\r
4991 self._errHandler.sync(self)\r
4992 _la = self._input.LA(1)\r
4993 while _la==CParser.T__76 or _la==CParser.T__77:\r
4994 self.state = 736\r
4995 _la = self._input.LA(1)\r
4996 if not(_la==CParser.T__76 or _la==CParser.T__77):\r
4997 self._errHandler.recoverInline(self)\r
4998 else:\r
4999 self._errHandler.reportMatch(self)\r
5000 self.consume()\r
5001 self.state = 737\r
5002 self.additive_expression()\r
5003 self.state = 742\r
5004 self._errHandler.sync(self)\r
5005 _la = self._input.LA(1)\r
5006\r
5007 except RecognitionException as re:\r
5008 localctx.exception = re\r
5009 self._errHandler.reportError(self, re)\r
5010 self._errHandler.recover(self, re)\r
5011 finally:\r
5012 self.exitRule()\r
5013 return localctx\r
f51461c8 5014\r
22c4de1a 5015 class StatementContext(ParserRuleContext):\r
f51461c8 5016\r
22c4de1a
HC
5017 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5018 super().__init__(parent, invokingState)\r
5019 self.parser = parser\r
f51461c8 5020\r
22c4de1a
HC
5021 def labeled_statement(self):\r
5022 return self.getTypedRuleContext(CParser.Labeled_statementContext,0)\r
f51461c8 5023\r
f51461c8 5024\r
22c4de1a
HC
5025 def compound_statement(self):\r
5026 return self.getTypedRuleContext(CParser.Compound_statementContext,0)\r
f51461c8 5027\r
f51461c8 5028\r
22c4de1a
HC
5029 def expression_statement(self):\r
5030 return self.getTypedRuleContext(CParser.Expression_statementContext,0)\r
f51461c8
LG
5031\r
5032\r
22c4de1a
HC
5033 def selection_statement(self):\r
5034 return self.getTypedRuleContext(CParser.Selection_statementContext,0)\r
f51461c8 5035\r
f51461c8 5036\r
22c4de1a
HC
5037 def iteration_statement(self):\r
5038 return self.getTypedRuleContext(CParser.Iteration_statementContext,0)\r
f51461c8
LG
5039\r
5040\r
22c4de1a
HC
5041 def jump_statement(self):\r
5042 return self.getTypedRuleContext(CParser.Jump_statementContext,0)\r
f51461c8
LG
5043\r
5044\r
22c4de1a
HC
5045 def macro_statement(self):\r
5046 return self.getTypedRuleContext(CParser.Macro_statementContext,0)\r
f51461c8
LG
5047\r
5048\r
22c4de1a
HC
5049 def asm2_statement(self):\r
5050 return self.getTypedRuleContext(CParser.Asm2_statementContext,0)\r
f51461c8 5051\r
f51461c8 5052\r
22c4de1a
HC
5053 def asm1_statement(self):\r
5054 return self.getTypedRuleContext(CParser.Asm1_statementContext,0)\r
f51461c8 5055\r
f51461c8 5056\r
22c4de1a
HC
5057 def asm_statement(self):\r
5058 return self.getTypedRuleContext(CParser.Asm_statementContext,0)\r
f51461c8
LG
5059\r
5060\r
22c4de1a
HC
5061 def declaration(self):\r
5062 return self.getTypedRuleContext(CParser.DeclarationContext,0)\r
f51461c8
LG
5063\r
5064\r
22c4de1a
HC
5065 def getRuleIndex(self):\r
5066 return CParser.RULE_statement\r
f51461c8 5067\r
22c4de1a
HC
5068 def enterRule(self, listener:ParseTreeListener):\r
5069 if hasattr( listener, "enterStatement" ):\r
5070 listener.enterStatement(self)\r
f51461c8 5071\r
22c4de1a
HC
5072 def exitRule(self, listener:ParseTreeListener):\r
5073 if hasattr( listener, "exitStatement" ):\r
5074 listener.exitStatement(self)\r
f51461c8 5075\r
f51461c8 5076\r
f51461c8 5077\r
f51461c8 5078\r
22c4de1a 5079 def statement(self):\r
f51461c8 5080\r
22c4de1a
HC
5081 localctx = CParser.StatementContext(self, self._ctx, self.state)\r
5082 self.enterRule(localctx, 118, self.RULE_statement)\r
5083 try:\r
5084 self.state = 754\r
5085 self._errHandler.sync(self)\r
5086 la_ = self._interp.adaptivePredict(self._input,92,self._ctx)\r
5087 if la_ == 1:\r
5088 self.enterOuterAlt(localctx, 1)\r
5089 self.state = 743\r
5090 self.labeled_statement()\r
5091 pass\r
5092\r
5093 elif la_ == 2:\r
5094 self.enterOuterAlt(localctx, 2)\r
5095 self.state = 744\r
5096 self.compound_statement()\r
5097 pass\r
5098\r
5099 elif la_ == 3:\r
5100 self.enterOuterAlt(localctx, 3)\r
5101 self.state = 745\r
5102 self.expression_statement()\r
5103 pass\r
5104\r
5105 elif la_ == 4:\r
5106 self.enterOuterAlt(localctx, 4)\r
5107 self.state = 746\r
5108 self.selection_statement()\r
5109 pass\r
5110\r
5111 elif la_ == 5:\r
5112 self.enterOuterAlt(localctx, 5)\r
5113 self.state = 747\r
5114 self.iteration_statement()\r
5115 pass\r
5116\r
5117 elif la_ == 6:\r
5118 self.enterOuterAlt(localctx, 6)\r
5119 self.state = 748\r
5120 self.jump_statement()\r
5121 pass\r
5122\r
5123 elif la_ == 7:\r
5124 self.enterOuterAlt(localctx, 7)\r
5125 self.state = 749\r
5126 self.macro_statement()\r
5127 pass\r
5128\r
5129 elif la_ == 8:\r
5130 self.enterOuterAlt(localctx, 8)\r
5131 self.state = 750\r
5132 self.asm2_statement()\r
5133 pass\r
5134\r
5135 elif la_ == 9:\r
5136 self.enterOuterAlt(localctx, 9)\r
5137 self.state = 751\r
5138 self.asm1_statement()\r
5139 pass\r
5140\r
5141 elif la_ == 10:\r
5142 self.enterOuterAlt(localctx, 10)\r
5143 self.state = 752\r
5144 self.asm_statement()\r
5145 pass\r
5146\r
5147 elif la_ == 11:\r
5148 self.enterOuterAlt(localctx, 11)\r
5149 self.state = 753\r
5150 self.declaration()\r
5151 pass\r
f51461c8 5152\r
f51461c8 5153\r
22c4de1a
HC
5154 except RecognitionException as re:\r
5155 localctx.exception = re\r
5156 self._errHandler.reportError(self, re)\r
5157 self._errHandler.recover(self, re)\r
5158 finally:\r
5159 self.exitRule()\r
5160 return localctx\r
f51461c8 5161\r
22c4de1a 5162 class Asm2_statementContext(ParserRuleContext):\r
f51461c8 5163\r
22c4de1a
HC
5164 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5165 super().__init__(parent, invokingState)\r
5166 self.parser = parser\r
f51461c8 5167\r
22c4de1a
HC
5168 def IDENTIFIER(self):\r
5169 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 5170\r
22c4de1a
HC
5171 def getRuleIndex(self):\r
5172 return CParser.RULE_asm2_statement\r
f51461c8 5173\r
22c4de1a
HC
5174 def enterRule(self, listener:ParseTreeListener):\r
5175 if hasattr( listener, "enterAsm2_statement" ):\r
5176 listener.enterAsm2_statement(self)\r
f51461c8 5177\r
22c4de1a
HC
5178 def exitRule(self, listener:ParseTreeListener):\r
5179 if hasattr( listener, "exitAsm2_statement" ):\r
5180 listener.exitAsm2_statement(self)\r
f51461c8
LG
5181\r
5182\r
5183\r
f51461c8 5184\r
22c4de1a 5185 def asm2_statement(self):\r
f51461c8 5186\r
22c4de1a
HC
5187 localctx = CParser.Asm2_statementContext(self, self._ctx, self.state)\r
5188 self.enterRule(localctx, 120, self.RULE_asm2_statement)\r
5189 self._la = 0 # Token type\r
5190 try:\r
5191 self.enterOuterAlt(localctx, 1)\r
5192 self.state = 757\r
5193 self._errHandler.sync(self)\r
5194 _la = self._input.LA(1)\r
5195 if _la==CParser.T__78:\r
5196 self.state = 756\r
5197 self.match(CParser.T__78)\r
5198\r
5199\r
5200 self.state = 759\r
5201 self.match(CParser.IDENTIFIER)\r
5202 self.state = 760\r
5203 self.match(CParser.T__37)\r
5204 self.state = 764\r
5205 self._errHandler.sync(self)\r
5206 _alt = self._interp.adaptivePredict(self._input,94,self._ctx)\r
5207 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5208 if _alt==1:\r
5209 self.state = 761\r
5210 _la = self._input.LA(1)\r
5211 if _la <= 0 or _la==CParser.T__1:\r
5212 self._errHandler.recoverInline(self)\r
5213 else:\r
5214 self._errHandler.reportMatch(self)\r
5215 self.consume() \r
5216 self.state = 766\r
5217 self._errHandler.sync(self)\r
5218 _alt = self._interp.adaptivePredict(self._input,94,self._ctx)\r
5219\r
5220 self.state = 767\r
5221 self.match(CParser.T__38)\r
5222 self.state = 768\r
5223 self.match(CParser.T__1)\r
5224 except RecognitionException as re:\r
5225 localctx.exception = re\r
5226 self._errHandler.reportError(self, re)\r
5227 self._errHandler.recover(self, re)\r
5228 finally:\r
5229 self.exitRule()\r
5230 return localctx\r
f51461c8 5231\r
22c4de1a 5232 class Asm1_statementContext(ParserRuleContext):\r
f51461c8 5233\r
22c4de1a
HC
5234 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5235 super().__init__(parent, invokingState)\r
5236 self.parser = parser\r
f51461c8 5237\r
f51461c8 5238\r
22c4de1a
HC
5239 def getRuleIndex(self):\r
5240 return CParser.RULE_asm1_statement\r
f51461c8 5241\r
22c4de1a
HC
5242 def enterRule(self, listener:ParseTreeListener):\r
5243 if hasattr( listener, "enterAsm1_statement" ):\r
5244 listener.enterAsm1_statement(self)\r
f51461c8 5245\r
22c4de1a
HC
5246 def exitRule(self, listener:ParseTreeListener):\r
5247 if hasattr( listener, "exitAsm1_statement" ):\r
5248 listener.exitAsm1_statement(self)\r
f51461c8 5249\r
f51461c8
LG
5250\r
5251\r
f51461c8 5252\r
22c4de1a 5253 def asm1_statement(self):\r
f51461c8 5254\r
22c4de1a
HC
5255 localctx = CParser.Asm1_statementContext(self, self._ctx, self.state)\r
5256 self.enterRule(localctx, 122, self.RULE_asm1_statement)\r
5257 self._la = 0 # Token type\r
5258 try:\r
5259 self.enterOuterAlt(localctx, 1)\r
5260 self.state = 770\r
5261 self.match(CParser.T__79)\r
5262 self.state = 771\r
5263 self.match(CParser.T__0)\r
5264 self.state = 775\r
5265 self._errHandler.sync(self)\r
5266 _la = self._input.LA(1)\r
5267 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
5268 self.state = 772\r
5269 _la = self._input.LA(1)\r
5270 if _la <= 0 or _la==CParser.T__19:\r
5271 self._errHandler.recoverInline(self)\r
5272 else:\r
5273 self._errHandler.reportMatch(self)\r
5274 self.consume()\r
5275 self.state = 777\r
5276 self._errHandler.sync(self)\r
5277 _la = self._input.LA(1)\r
5278\r
5279 self.state = 778\r
5280 self.match(CParser.T__19)\r
5281 except RecognitionException as re:\r
5282 localctx.exception = re\r
5283 self._errHandler.reportError(self, re)\r
5284 self._errHandler.recover(self, re)\r
5285 finally:\r
5286 self.exitRule()\r
5287 return localctx\r
f51461c8 5288\r
22c4de1a 5289 class Asm_statementContext(ParserRuleContext):\r
f51461c8 5290\r
22c4de1a
HC
5291 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5292 super().__init__(parent, invokingState)\r
5293 self.parser = parser\r
f51461c8
LG
5294\r
5295\r
22c4de1a
HC
5296 def getRuleIndex(self):\r
5297 return CParser.RULE_asm_statement\r
f51461c8 5298\r
22c4de1a
HC
5299 def enterRule(self, listener:ParseTreeListener):\r
5300 if hasattr( listener, "enterAsm_statement" ):\r
5301 listener.enterAsm_statement(self)\r
f51461c8 5302\r
22c4de1a
HC
5303 def exitRule(self, listener:ParseTreeListener):\r
5304 if hasattr( listener, "exitAsm_statement" ):\r
5305 listener.exitAsm_statement(self)\r
f51461c8 5306\r
f51461c8 5307\r
f51461c8
LG
5308\r
5309\r
22c4de1a 5310 def asm_statement(self):\r
f51461c8 5311\r
22c4de1a
HC
5312 localctx = CParser.Asm_statementContext(self, self._ctx, self.state)\r
5313 self.enterRule(localctx, 124, self.RULE_asm_statement)\r
5314 self._la = 0 # Token type\r
5315 try:\r
5316 self.enterOuterAlt(localctx, 1)\r
5317 self.state = 780\r
5318 self.match(CParser.T__80)\r
5319 self.state = 781\r
5320 self.match(CParser.T__0)\r
5321 self.state = 785\r
5322 self._errHandler.sync(self)\r
5323 _la = self._input.LA(1)\r
5324 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
5325 self.state = 782\r
5326 _la = self._input.LA(1)\r
5327 if _la <= 0 or _la==CParser.T__19:\r
5328 self._errHandler.recoverInline(self)\r
5329 else:\r
5330 self._errHandler.reportMatch(self)\r
5331 self.consume()\r
5332 self.state = 787\r
5333 self._errHandler.sync(self)\r
5334 _la = self._input.LA(1)\r
5335\r
5336 self.state = 788\r
5337 self.match(CParser.T__19)\r
5338 except RecognitionException as re:\r
5339 localctx.exception = re\r
5340 self._errHandler.reportError(self, re)\r
5341 self._errHandler.recover(self, re)\r
5342 finally:\r
5343 self.exitRule()\r
5344 return localctx\r
f51461c8 5345\r
22c4de1a 5346 class Macro_statementContext(ParserRuleContext):\r
f51461c8 5347\r
22c4de1a
HC
5348 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5349 super().__init__(parent, invokingState)\r
5350 self.parser = parser\r
f51461c8 5351\r
22c4de1a
HC
5352 def IDENTIFIER(self):\r
5353 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 5354\r
22c4de1a
HC
5355 def declaration(self, i:int=None):\r
5356 if i is None:\r
5357 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
5358 else:\r
5359 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
f51461c8
LG
5360\r
5361\r
22c4de1a
HC
5362 def statement_list(self):\r
5363 return self.getTypedRuleContext(CParser.Statement_listContext,0)\r
f51461c8
LG
5364\r
5365\r
22c4de1a
HC
5366 def expression(self):\r
5367 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8
LG
5368\r
5369\r
22c4de1a
HC
5370 def getRuleIndex(self):\r
5371 return CParser.RULE_macro_statement\r
f51461c8 5372\r
22c4de1a
HC
5373 def enterRule(self, listener:ParseTreeListener):\r
5374 if hasattr( listener, "enterMacro_statement" ):\r
5375 listener.enterMacro_statement(self)\r
f51461c8 5376\r
22c4de1a
HC
5377 def exitRule(self, listener:ParseTreeListener):\r
5378 if hasattr( listener, "exitMacro_statement" ):\r
5379 listener.exitMacro_statement(self)\r
f51461c8
LG
5380\r
5381\r
5382\r
5383\r
22c4de1a 5384 def macro_statement(self):\r
f51461c8 5385\r
22c4de1a
HC
5386 localctx = CParser.Macro_statementContext(self, self._ctx, self.state)\r
5387 self.enterRule(localctx, 126, self.RULE_macro_statement)\r
5388 self._la = 0 # Token type\r
5389 try:\r
5390 self.enterOuterAlt(localctx, 1)\r
5391 self.state = 790\r
5392 self.match(CParser.IDENTIFIER)\r
5393 self.state = 791\r
5394 self.match(CParser.T__37)\r
5395 self.state = 795\r
5396 self._errHandler.sync(self)\r
5397 _alt = self._interp.adaptivePredict(self._input,97,self._ctx)\r
5398 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5399 if _alt==1:\r
5400 self.state = 792\r
5401 self.declaration() \r
5402 self.state = 797\r
5403 self._errHandler.sync(self)\r
5404 _alt = self._interp.adaptivePredict(self._input,97,self._ctx)\r
5405\r
5406 self.state = 799\r
5407 self._errHandler.sync(self)\r
5408 la_ = self._interp.adaptivePredict(self._input,98,self._ctx)\r
5409 if la_ == 1:\r
5410 self.state = 798\r
5411 self.statement_list()\r
5412\r
5413\r
5414 self.state = 802\r
5415 self._errHandler.sync(self)\r
5416 _la = self._input.LA(1)\r
5417 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
5418 self.state = 801\r
5419 self.expression()\r
5420\r
5421\r
5422 self.state = 804\r
5423 self.match(CParser.T__38)\r
5424 except RecognitionException as re:\r
5425 localctx.exception = re\r
5426 self._errHandler.reportError(self, re)\r
5427 self._errHandler.recover(self, re)\r
5428 finally:\r
5429 self.exitRule()\r
5430 return localctx\r
f51461c8 5431\r
22c4de1a 5432 class Labeled_statementContext(ParserRuleContext):\r
f51461c8 5433\r
22c4de1a
HC
5434 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5435 super().__init__(parent, invokingState)\r
5436 self.parser = parser\r
f51461c8 5437\r
22c4de1a
HC
5438 def IDENTIFIER(self):\r
5439 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 5440\r
22c4de1a
HC
5441 def statement(self):\r
5442 return self.getTypedRuleContext(CParser.StatementContext,0)\r
f51461c8
LG
5443\r
5444\r
22c4de1a
HC
5445 def constant_expression(self):\r
5446 return self.getTypedRuleContext(CParser.Constant_expressionContext,0)\r
f51461c8
LG
5447\r
5448\r
22c4de1a
HC
5449 def getRuleIndex(self):\r
5450 return CParser.RULE_labeled_statement\r
f51461c8 5451\r
22c4de1a
HC
5452 def enterRule(self, listener:ParseTreeListener):\r
5453 if hasattr( listener, "enterLabeled_statement" ):\r
5454 listener.enterLabeled_statement(self)\r
f51461c8 5455\r
22c4de1a
HC
5456 def exitRule(self, listener:ParseTreeListener):\r
5457 if hasattr( listener, "exitLabeled_statement" ):\r
5458 listener.exitLabeled_statement(self)\r
f51461c8 5459\r
f51461c8
LG
5460\r
5461\r
f51461c8 5462\r
22c4de1a 5463 def labeled_statement(self):\r
f51461c8 5464\r
22c4de1a
HC
5465 localctx = CParser.Labeled_statementContext(self, self._ctx, self.state)\r
5466 self.enterRule(localctx, 128, self.RULE_labeled_statement)\r
5467 try:\r
5468 self.state = 817\r
5469 self._errHandler.sync(self)\r
5470 token = self._input.LA(1)\r
5471 if token in [CParser.IDENTIFIER]:\r
5472 self.enterOuterAlt(localctx, 1)\r
5473 self.state = 806\r
5474 self.match(CParser.IDENTIFIER)\r
5475 self.state = 807\r
5476 self.match(CParser.T__22)\r
5477 self.state = 808\r
5478 self.statement()\r
5479 pass\r
5480 elif token in [CParser.T__81]:\r
5481 self.enterOuterAlt(localctx, 2)\r
5482 self.state = 809\r
5483 self.match(CParser.T__81)\r
5484 self.state = 810\r
5485 self.constant_expression()\r
5486 self.state = 811\r
5487 self.match(CParser.T__22)\r
5488 self.state = 812\r
5489 self.statement()\r
5490 pass\r
5491 elif token in [CParser.T__82]:\r
5492 self.enterOuterAlt(localctx, 3)\r
5493 self.state = 814\r
5494 self.match(CParser.T__82)\r
5495 self.state = 815\r
5496 self.match(CParser.T__22)\r
5497 self.state = 816\r
5498 self.statement()\r
5499 pass\r
5500 else:\r
5501 raise NoViableAltException(self)\r
f51461c8 5502\r
22c4de1a
HC
5503 except RecognitionException as re:\r
5504 localctx.exception = re\r
5505 self._errHandler.reportError(self, re)\r
5506 self._errHandler.recover(self, re)\r
5507 finally:\r
5508 self.exitRule()\r
5509 return localctx\r
f51461c8 5510\r
22c4de1a 5511 class Compound_statementContext(ParserRuleContext):\r
f51461c8 5512\r
22c4de1a
HC
5513 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5514 super().__init__(parent, invokingState)\r
5515 self.parser = parser\r
f51461c8 5516\r
22c4de1a
HC
5517 def declaration(self, i:int=None):\r
5518 if i is None:\r
5519 return self.getTypedRuleContexts(CParser.DeclarationContext)\r
5520 else:\r
5521 return self.getTypedRuleContext(CParser.DeclarationContext,i)\r
f51461c8
LG
5522\r
5523\r
22c4de1a
HC
5524 def statement_list(self):\r
5525 return self.getTypedRuleContext(CParser.Statement_listContext,0)\r
f51461c8
LG
5526\r
5527\r
22c4de1a
HC
5528 def getRuleIndex(self):\r
5529 return CParser.RULE_compound_statement\r
f51461c8 5530\r
22c4de1a
HC
5531 def enterRule(self, listener:ParseTreeListener):\r
5532 if hasattr( listener, "enterCompound_statement" ):\r
5533 listener.enterCompound_statement(self)\r
f51461c8 5534\r
22c4de1a
HC
5535 def exitRule(self, listener:ParseTreeListener):\r
5536 if hasattr( listener, "exitCompound_statement" ):\r
5537 listener.exitCompound_statement(self)\r
f51461c8 5538\r
f51461c8
LG
5539\r
5540\r
f51461c8 5541\r
22c4de1a 5542 def compound_statement(self):\r
f51461c8 5543\r
22c4de1a
HC
5544 localctx = CParser.Compound_statementContext(self, self._ctx, self.state)\r
5545 self.enterRule(localctx, 130, self.RULE_compound_statement)\r
5546 self._la = 0 # Token type\r
5547 try:\r
5548 self.enterOuterAlt(localctx, 1)\r
5549 self.state = 819\r
5550 self.match(CParser.T__0)\r
5551 self.state = 823\r
5552 self._errHandler.sync(self)\r
5553 _alt = self._interp.adaptivePredict(self._input,101,self._ctx)\r
5554 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5555 if _alt==1:\r
5556 self.state = 820\r
5557 self.declaration() \r
5558 self.state = 825\r
5559 self._errHandler.sync(self)\r
5560 _alt = self._interp.adaptivePredict(self._input,101,self._ctx)\r
5561\r
5562 self.state = 827\r
5563 self._errHandler.sync(self)\r
5564 _la = self._input.LA(1)\r
5565 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
5566 self.state = 826\r
5567 self.statement_list()\r
5568\r
5569\r
5570 self.state = 829\r
5571 self.match(CParser.T__19)\r
5572 except RecognitionException as re:\r
5573 localctx.exception = re\r
5574 self._errHandler.reportError(self, re)\r
5575 self._errHandler.recover(self, re)\r
5576 finally:\r
5577 self.exitRule()\r
5578 return localctx\r
f51461c8 5579\r
22c4de1a 5580 class Statement_listContext(ParserRuleContext):\r
f51461c8 5581\r
22c4de1a
HC
5582 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5583 super().__init__(parent, invokingState)\r
5584 self.parser = parser\r
f51461c8 5585\r
22c4de1a
HC
5586 def statement(self, i:int=None):\r
5587 if i is None:\r
5588 return self.getTypedRuleContexts(CParser.StatementContext)\r
5589 else:\r
5590 return self.getTypedRuleContext(CParser.StatementContext,i)\r
f51461c8
LG
5591\r
5592\r
22c4de1a
HC
5593 def getRuleIndex(self):\r
5594 return CParser.RULE_statement_list\r
f51461c8 5595\r
22c4de1a
HC
5596 def enterRule(self, listener:ParseTreeListener):\r
5597 if hasattr( listener, "enterStatement_list" ):\r
5598 listener.enterStatement_list(self)\r
f51461c8 5599\r
22c4de1a
HC
5600 def exitRule(self, listener:ParseTreeListener):\r
5601 if hasattr( listener, "exitStatement_list" ):\r
5602 listener.exitStatement_list(self)\r
f51461c8 5603\r
f51461c8
LG
5604\r
5605\r
5606\r
22c4de1a 5607 def statement_list(self):\r
f51461c8 5608\r
22c4de1a
HC
5609 localctx = CParser.Statement_listContext(self, self._ctx, self.state)\r
5610 self.enterRule(localctx, 132, self.RULE_statement_list)\r
5611 try:\r
5612 self.enterOuterAlt(localctx, 1)\r
5613 self.state = 832 \r
5614 self._errHandler.sync(self)\r
5615 _alt = 1\r
5616 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:\r
5617 if _alt == 1:\r
5618 self.state = 831\r
5619 self.statement()\r
f51461c8 5620\r
22c4de1a
HC
5621 else:\r
5622 raise NoViableAltException(self)\r
5623 self.state = 834 \r
5624 self._errHandler.sync(self)\r
5625 _alt = self._interp.adaptivePredict(self._input,103,self._ctx)\r
5626\r
5627 except RecognitionException as re:\r
5628 localctx.exception = re\r
5629 self._errHandler.reportError(self, re)\r
5630 self._errHandler.recover(self, re)\r
5631 finally:\r
5632 self.exitRule()\r
5633 return localctx\r
f51461c8 5634\r
22c4de1a 5635 class Expression_statementContext(ParserRuleContext):\r
f51461c8 5636\r
22c4de1a
HC
5637 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5638 super().__init__(parent, invokingState)\r
5639 self.parser = parser\r
f51461c8 5640\r
22c4de1a
HC
5641 def expression(self):\r
5642 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8
LG
5643\r
5644\r
22c4de1a
HC
5645 def getRuleIndex(self):\r
5646 return CParser.RULE_expression_statement\r
f51461c8 5647\r
22c4de1a
HC
5648 def enterRule(self, listener:ParseTreeListener):\r
5649 if hasattr( listener, "enterExpression_statement" ):\r
5650 listener.enterExpression_statement(self)\r
f51461c8 5651\r
22c4de1a
HC
5652 def exitRule(self, listener:ParseTreeListener):\r
5653 if hasattr( listener, "exitExpression_statement" ):\r
5654 listener.exitExpression_statement(self)\r
f51461c8 5655\r
f51461c8
LG
5656\r
5657\r
f51461c8 5658\r
22c4de1a 5659 def expression_statement(self):\r
f51461c8 5660\r
22c4de1a
HC
5661 localctx = CParser.Expression_statementContext(self, self._ctx, self.state)\r
5662 self.enterRule(localctx, 134, self.RULE_expression_statement)\r
5663 try:\r
5664 self.state = 840\r
5665 self._errHandler.sync(self)\r
5666 token = self._input.LA(1)\r
5667 if token in [CParser.T__1]:\r
5668 self.enterOuterAlt(localctx, 1)\r
5669 self.state = 836\r
5670 self.match(CParser.T__1)\r
5671 pass\r
5672 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
5673 self.enterOuterAlt(localctx, 2)\r
5674 self.state = 837\r
5675 self.expression()\r
5676 self.state = 838\r
5677 self.match(CParser.T__1)\r
5678 pass\r
5679 else:\r
5680 raise NoViableAltException(self)\r
f51461c8 5681\r
22c4de1a
HC
5682 except RecognitionException as re:\r
5683 localctx.exception = re\r
5684 self._errHandler.reportError(self, re)\r
5685 self._errHandler.recover(self, re)\r
5686 finally:\r
5687 self.exitRule()\r
5688 return localctx\r
f51461c8 5689\r
22c4de1a 5690 class Selection_statementContext(ParserRuleContext):\r
f51461c8 5691\r
22c4de1a
HC
5692 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5693 super().__init__(parent, invokingState)\r
5694 self.parser = parser\r
5695 self.e = None # ExpressionContext\r
f51461c8 5696\r
22c4de1a
HC
5697 def statement(self, i:int=None):\r
5698 if i is None:\r
5699 return self.getTypedRuleContexts(CParser.StatementContext)\r
5700 else:\r
5701 return self.getTypedRuleContext(CParser.StatementContext,i)\r
f51461c8
LG
5702\r
5703\r
22c4de1a
HC
5704 def expression(self):\r
5705 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8
LG
5706\r
5707\r
22c4de1a
HC
5708 def getRuleIndex(self):\r
5709 return CParser.RULE_selection_statement\r
f51461c8 5710\r
22c4de1a
HC
5711 def enterRule(self, listener:ParseTreeListener):\r
5712 if hasattr( listener, "enterSelection_statement" ):\r
5713 listener.enterSelection_statement(self)\r
f51461c8 5714\r
22c4de1a
HC
5715 def exitRule(self, listener:ParseTreeListener):\r
5716 if hasattr( listener, "exitSelection_statement" ):\r
5717 listener.exitSelection_statement(self)\r
f51461c8 5718\r
f51461c8
LG
5719\r
5720\r
f51461c8 5721\r
22c4de1a 5722 def selection_statement(self):\r
f51461c8 5723\r
22c4de1a
HC
5724 localctx = CParser.Selection_statementContext(self, self._ctx, self.state)\r
5725 self.enterRule(localctx, 136, self.RULE_selection_statement)\r
5726 try:\r
5727 self.state = 858\r
5728 self._errHandler.sync(self)\r
5729 token = self._input.LA(1)\r
5730 if token in [CParser.T__83]:\r
5731 self.enterOuterAlt(localctx, 1)\r
5732 self.state = 842\r
5733 self.match(CParser.T__83)\r
5734 self.state = 843\r
5735 self.match(CParser.T__37)\r
5736 self.state = 844\r
5737 localctx.e = self.expression()\r
5738 self.state = 845\r
5739 self.match(CParser.T__38)\r
5740 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
5741 self.state = 847\r
5742 self.statement()\r
5743 self.state = 850\r
5744 self._errHandler.sync(self)\r
5745 la_ = self._interp.adaptivePredict(self._input,105,self._ctx)\r
5746 if la_ == 1:\r
5747 self.state = 848\r
5748 self.match(CParser.T__84)\r
5749 self.state = 849\r
5750 self.statement()\r
f51461c8 5751\r
f51461c8 5752\r
22c4de1a
HC
5753 pass\r
5754 elif token in [CParser.T__85]:\r
5755 self.enterOuterAlt(localctx, 2)\r
5756 self.state = 852\r
5757 self.match(CParser.T__85)\r
5758 self.state = 853\r
5759 self.match(CParser.T__37)\r
5760 self.state = 854\r
5761 self.expression()\r
5762 self.state = 855\r
5763 self.match(CParser.T__38)\r
5764 self.state = 856\r
5765 self.statement()\r
5766 pass\r
5767 else:\r
5768 raise NoViableAltException(self)\r
f51461c8 5769\r
22c4de1a
HC
5770 except RecognitionException as re:\r
5771 localctx.exception = re\r
5772 self._errHandler.reportError(self, re)\r
5773 self._errHandler.recover(self, re)\r
5774 finally:\r
5775 self.exitRule()\r
5776 return localctx\r
f51461c8 5777\r
22c4de1a 5778 class Iteration_statementContext(ParserRuleContext):\r
f51461c8 5779\r
22c4de1a
HC
5780 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5781 super().__init__(parent, invokingState)\r
5782 self.parser = parser\r
5783 self.e = None # ExpressionContext\r
f51461c8 5784\r
22c4de1a
HC
5785 def statement(self):\r
5786 return self.getTypedRuleContext(CParser.StatementContext,0)\r
f51461c8
LG
5787\r
5788\r
22c4de1a
HC
5789 def expression(self):\r
5790 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8
LG
5791\r
5792\r
22c4de1a
HC
5793 def getRuleIndex(self):\r
5794 return CParser.RULE_iteration_statement\r
f51461c8 5795\r
22c4de1a
HC
5796 def enterRule(self, listener:ParseTreeListener):\r
5797 if hasattr( listener, "enterIteration_statement" ):\r
5798 listener.enterIteration_statement(self)\r
f51461c8 5799\r
22c4de1a
HC
5800 def exitRule(self, listener:ParseTreeListener):\r
5801 if hasattr( listener, "exitIteration_statement" ):\r
5802 listener.exitIteration_statement(self)\r
f51461c8 5803\r
f51461c8
LG
5804\r
5805\r
f51461c8 5806\r
22c4de1a 5807 def iteration_statement(self):\r
f51461c8 5808\r
22c4de1a
HC
5809 localctx = CParser.Iteration_statementContext(self, self._ctx, self.state)\r
5810 self.enterRule(localctx, 138, self.RULE_iteration_statement)\r
5811 try:\r
5812 self.state = 876\r
5813 self._errHandler.sync(self)\r
5814 token = self._input.LA(1)\r
5815 if token in [CParser.T__86]:\r
5816 self.enterOuterAlt(localctx, 1)\r
5817 self.state = 860\r
5818 self.match(CParser.T__86)\r
5819 self.state = 861\r
5820 self.match(CParser.T__37)\r
5821 self.state = 862\r
5822 localctx.e = self.expression()\r
5823 self.state = 863\r
5824 self.match(CParser.T__38)\r
5825 self.state = 864\r
5826 self.statement()\r
5827 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
5828 pass\r
5829 elif token in [CParser.T__87]:\r
5830 self.enterOuterAlt(localctx, 2)\r
5831 self.state = 867\r
5832 self.match(CParser.T__87)\r
5833 self.state = 868\r
5834 self.statement()\r
5835 self.state = 869\r
5836 self.match(CParser.T__86)\r
5837 self.state = 870\r
5838 self.match(CParser.T__37)\r
5839 self.state = 871\r
5840 localctx.e = self.expression()\r
5841 self.state = 872\r
5842 self.match(CParser.T__38)\r
5843 self.state = 873\r
5844 self.match(CParser.T__1)\r
5845 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
5846 pass\r
5847 else:\r
5848 raise NoViableAltException(self)\r
f51461c8 5849\r
22c4de1a
HC
5850 except RecognitionException as re:\r
5851 localctx.exception = re\r
5852 self._errHandler.reportError(self, re)\r
5853 self._errHandler.recover(self, re)\r
5854 finally:\r
5855 self.exitRule()\r
5856 return localctx\r
f51461c8 5857\r
22c4de1a 5858 class Jump_statementContext(ParserRuleContext):\r
f51461c8 5859\r
22c4de1a
HC
5860 def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):\r
5861 super().__init__(parent, invokingState)\r
5862 self.parser = parser\r
f51461c8 5863\r
22c4de1a
HC
5864 def IDENTIFIER(self):\r
5865 return self.getToken(CParser.IDENTIFIER, 0)\r
f51461c8 5866\r
22c4de1a
HC
5867 def expression(self):\r
5868 return self.getTypedRuleContext(CParser.ExpressionContext,0)\r
f51461c8 5869\r
f51461c8 5870\r
22c4de1a
HC
5871 def getRuleIndex(self):\r
5872 return CParser.RULE_jump_statement\r
f51461c8 5873\r
22c4de1a
HC
5874 def enterRule(self, listener:ParseTreeListener):\r
5875 if hasattr( listener, "enterJump_statement" ):\r
5876 listener.enterJump_statement(self)\r
f51461c8 5877\r
22c4de1a
HC
5878 def exitRule(self, listener:ParseTreeListener):\r
5879 if hasattr( listener, "exitJump_statement" ):\r
5880 listener.exitJump_statement(self)\r
f51461c8
LG
5881\r
5882\r
f51461c8
LG
5883\r
5884\r
22c4de1a 5885 def jump_statement(self):\r
f51461c8 5886\r
22c4de1a
HC
5887 localctx = CParser.Jump_statementContext(self, self._ctx, self.state)\r
5888 self.enterRule(localctx, 140, self.RULE_jump_statement)\r
5889 try:\r
5890 self.state = 891\r
5891 self._errHandler.sync(self)\r
5892 la_ = self._interp.adaptivePredict(self._input,108,self._ctx)\r
5893 if la_ == 1:\r
5894 self.enterOuterAlt(localctx, 1)\r
5895 self.state = 878\r
5896 self.match(CParser.T__88)\r
5897 self.state = 879\r
5898 self.match(CParser.IDENTIFIER)\r
5899 self.state = 880\r
5900 self.match(CParser.T__1)\r
5901 pass\r
5902\r
5903 elif la_ == 2:\r
5904 self.enterOuterAlt(localctx, 2)\r
5905 self.state = 881\r
5906 self.match(CParser.T__89)\r
5907 self.state = 882\r
5908 self.match(CParser.T__1)\r
5909 pass\r
5910\r
5911 elif la_ == 3:\r
5912 self.enterOuterAlt(localctx, 3)\r
5913 self.state = 883\r
5914 self.match(CParser.T__90)\r
5915 self.state = 884\r
5916 self.match(CParser.T__1)\r
5917 pass\r
5918\r
5919 elif la_ == 4:\r
5920 self.enterOuterAlt(localctx, 4)\r
5921 self.state = 885\r
5922 self.match(CParser.T__91)\r
5923 self.state = 886\r
5924 self.match(CParser.T__1)\r
5925 pass\r
5926\r
5927 elif la_ == 5:\r
5928 self.enterOuterAlt(localctx, 5)\r
5929 self.state = 887\r
5930 self.match(CParser.T__91)\r
5931 self.state = 888\r
5932 self.expression()\r
5933 self.state = 889\r
5934 self.match(CParser.T__1)\r
5935 pass\r
5936\r
5937\r
5938 except RecognitionException as re:\r
5939 localctx.exception = re\r
5940 self._errHandler.reportError(self, re)\r
5941 self._errHandler.recover(self, re)\r
5942 finally:\r
5943 self.exitRule()\r
5944 return localctx\r
f51461c8
LG
5945\r
5946\r
f51461c8
LG
5947\r
5948\r
f51461c8 5949\r