View Javadoc
1   // Generated from io/github/magwas/inez/parser/Bridi.g4 by ANTLR 4.13.2
2   package io.github.magwas.inez.parser;
3   import org.antlr.v4.runtime.atn.*;
4   import org.antlr.v4.runtime.dfa.DFA;
5   import org.antlr.v4.runtime.*;
6   import org.antlr.v4.runtime.misc.*;
7   import org.antlr.v4.runtime.tree.*;
8   import java.util.List;
9   import java.util.Iterator;
10  import java.util.ArrayList;
11  
12  @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue", "this-escape"})
13  public class BridiParser extends Parser {
14  	static { RuntimeMetaData.checkVersion("4.13.2", RuntimeMetaData.VERSION); }
15  
16  	protected static final DFA[] _decisionToDFA;
17  	protected static final PredictionContextCache _sharedContextCache =
18  		new PredictionContextCache();
19  	public static final int
20  		PRE=1, POST=2, LITERALPRE=3, LITERALPOST=4, REF=5, NEWLINE=6, TEXT=7;
21  	public static final int
22  		RULE_literal = 0, RULE_bridi = 1, RULE_textReference = 2, RULE_paragraph = 3;
23  	private static String[] makeRuleNames() {
24  		return new String[] {
25  			"literal", "bridi", "textReference", "paragraph"
26  		};
27  	}
28  	public static final String[] ruleNames = makeRuleNames();
29  
30  	private static String[] makeLiteralNames() {
31  		return new String[] {
32  			null, "'{'", "'}'", "'{['", "']}'", "'@'", "'\\n'"
33  		};
34  	}
35  	private static final String[] _LITERAL_NAMES = makeLiteralNames();
36  	private static String[] makeSymbolicNames() {
37  		return new String[] {
38  			null, "PRE", "POST", "LITERALPRE", "LITERALPOST", "REF", "NEWLINE", "TEXT"
39  		};
40  	}
41  	private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
42  	public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
43  
44  	/**
45  	 * @deprecated Use {@link #VOCABULARY} instead.
46  	 */
47  	@Deprecated
48  	public static final String[] tokenNames;
49  	static {
50  		tokenNames = new String[_SYMBOLIC_NAMES.length];
51  		for (int i = 0; i < tokenNames.length; i++) {
52  			tokenNames[i] = VOCABULARY.getLiteralName(i);
53  			if (tokenNames[i] == null) {
54  				tokenNames[i] = VOCABULARY.getSymbolicName(i);
55  			}
56  
57  			if (tokenNames[i] == null) {
58  				tokenNames[i] = "<INVALID>";
59  			}
60  		}
61  	}
62  
63  	@Override
64  	@Deprecated
65  	public String[] getTokenNames() {
66  		return tokenNames;
67  	}
68  
69  	@Override
70  
71  	public Vocabulary getVocabulary() {
72  		return VOCABULARY;
73  	}
74  
75  	@Override
76  	public String getGrammarFileName() { return "Bridi.g4"; }
77  
78  	@Override
79  	public String[] getRuleNames() { return ruleNames; }
80  
81  	@Override
82  	public String getSerializedATN() { return _serializedATN; }
83  
84  	@Override
85  	public ATN getATN() { return _ATN; }
86  
87  	public BridiParser(TokenStream input) {
88  		super(input);
89  		_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
90  	}
91  
92  	@SuppressWarnings("CheckReturnValue")
93  	public static class LiteralContext extends ParserRuleContext {
94  		public List<TerminalNode> TEXT() { return getTokens(BridiParser.TEXT); }
95  		public TerminalNode TEXT(int i) {
96  			return getToken(BridiParser.TEXT, i);
97  		}
98  		public List<TerminalNode> PRE() { return getTokens(BridiParser.PRE); }
99  		public TerminalNode PRE(int i) {
100 			return getToken(BridiParser.PRE, i);
101 		}
102 		public List<TerminalNode> POST() { return getTokens(BridiParser.POST); }
103 		public TerminalNode POST(int i) {
104 			return getToken(BridiParser.POST, i);
105 		}
106 		public LiteralContext(ParserRuleContext parent, int invokingState) {
107 			super(parent, invokingState);
108 		}
109 		@Override public int getRuleIndex() { return RULE_literal; }
110 		@Override
111 		public void enterRule(ParseTreeListener listener) {
112 			if ( listener instanceof BridiListener ) ((BridiListener)listener).enterLiteral(this);
113 		}
114 		@Override
115 		public void exitRule(ParseTreeListener listener) {
116 			if ( listener instanceof BridiListener ) ((BridiListener)listener).exitLiteral(this);
117 		}
118 	}
119 
120 	public final LiteralContext literal() throws RecognitionException {
121 		LiteralContext _localctx = new LiteralContext(_ctx, getState());
122 		enterRule(_localctx, 0, RULE_literal);
123 		int _la;
124 		try {
125 			enterOuterAlt(_localctx, 1);
126 			{
127 			setState(9); 
128 			_errHandler.sync(this);
129 			_la = _input.LA(1);
130 			do {
131 				{
132 				{
133 				setState(8);
134 				_la = _input.LA(1);
135 				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 134L) != 0)) ) {
136 				_errHandler.recoverInline(this);
137 				}
138 				else {
139 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
140 					_errHandler.reportMatch(this);
141 					consume();
142 				}
143 				}
144 				}
145 				setState(11); 
146 				_errHandler.sync(this);
147 				_la = _input.LA(1);
148 			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & 134L) != 0) );
149 			}
150 		}
151 		catch (RecognitionException re) {
152 			_localctx.exception = re;
153 			_errHandler.reportError(this, re);
154 			_errHandler.recover(this, re);
155 		}
156 		finally {
157 			exitRule();
158 		}
159 		return _localctx;
160 	}
161 
162 	@SuppressWarnings("CheckReturnValue")
163 	public static class BridiContext extends ParserRuleContext {
164 		public List<TerminalNode> TEXT() { return getTokens(BridiParser.TEXT); }
165 		public TerminalNode TEXT(int i) {
166 			return getToken(BridiParser.TEXT, i);
167 		}
168 		public List<TerminalNode> LITERALPRE() { return getTokens(BridiParser.LITERALPRE); }
169 		public TerminalNode LITERALPRE(int i) {
170 			return getToken(BridiParser.LITERALPRE, i);
171 		}
172 		public List<LiteralContext> literal() {
173 			return getRuleContexts(LiteralContext.class);
174 		}
175 		public LiteralContext literal(int i) {
176 			return getRuleContext(LiteralContext.class,i);
177 		}
178 		public List<TerminalNode> LITERALPOST() { return getTokens(BridiParser.LITERALPOST); }
179 		public TerminalNode LITERALPOST(int i) {
180 			return getToken(BridiParser.LITERALPOST, i);
181 		}
182 		public List<TerminalNode> PRE() { return getTokens(BridiParser.PRE); }
183 		public TerminalNode PRE(int i) {
184 			return getToken(BridiParser.PRE, i);
185 		}
186 		public List<BridiContext> bridi() {
187 			return getRuleContexts(BridiContext.class);
188 		}
189 		public BridiContext bridi(int i) {
190 			return getRuleContext(BridiContext.class,i);
191 		}
192 		public List<TerminalNode> POST() { return getTokens(BridiParser.POST); }
193 		public TerminalNode POST(int i) {
194 			return getToken(BridiParser.POST, i);
195 		}
196 		public List<TextReferenceContext> textReference() {
197 			return getRuleContexts(TextReferenceContext.class);
198 		}
199 		public TextReferenceContext textReference(int i) {
200 			return getRuleContext(TextReferenceContext.class,i);
201 		}
202 		public BridiContext(ParserRuleContext parent, int invokingState) {
203 			super(parent, invokingState);
204 		}
205 		@Override public int getRuleIndex() { return RULE_bridi; }
206 		@Override
207 		public void enterRule(ParseTreeListener listener) {
208 			if ( listener instanceof BridiListener ) ((BridiListener)listener).enterBridi(this);
209 		}
210 		@Override
211 		public void exitRule(ParseTreeListener listener) {
212 			if ( listener instanceof BridiListener ) ((BridiListener)listener).exitBridi(this);
213 		}
214 	}
215 
216 	public final BridiContext bridi() throws RecognitionException {
217 		BridiContext _localctx = new BridiContext(_ctx, getState());
218 		enterRule(_localctx, 2, RULE_bridi);
219 		int _la;
220 		try {
221 			enterOuterAlt(_localctx, 1);
222 			{
223 			setState(26); 
224 			_errHandler.sync(this);
225 			_la = _input.LA(1);
226 			do {
227 				{
228 				setState(26);
229 				_errHandler.sync(this);
230 				switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
231 				case 1:
232 					{
233 					setState(13);
234 					match(TEXT);
235 					}
236 					break;
237 				case 2:
238 					{
239 					setState(14);
240 					match(LITERALPRE);
241 					setState(15);
242 					literal();
243 					setState(16);
244 					match(LITERALPOST);
245 					}
246 					break;
247 				case 3:
248 					{
249 					setState(18);
250 					match(PRE);
251 					setState(19);
252 					bridi();
253 					setState(20);
254 					match(POST);
255 					}
256 					break;
257 				case 4:
258 					{
259 					setState(22);
260 					match(PRE);
261 					setState(23);
262 					textReference();
263 					setState(24);
264 					match(POST);
265 					}
266 					break;
267 				}
268 				}
269 				setState(28); 
270 				_errHandler.sync(this);
271 				_la = _input.LA(1);
272 			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & 138L) != 0) );
273 			}
274 		}
275 		catch (RecognitionException re) {
276 			_localctx.exception = re;
277 			_errHandler.reportError(this, re);
278 			_errHandler.recover(this, re);
279 		}
280 		finally {
281 			exitRule();
282 		}
283 		return _localctx;
284 	}
285 
286 	@SuppressWarnings("CheckReturnValue")
287 	public static class TextReferenceContext extends ParserRuleContext {
288 		public TerminalNode REF() { return getToken(BridiParser.REF, 0); }
289 		public TerminalNode TEXT() { return getToken(BridiParser.TEXT, 0); }
290 		public TextReferenceContext(ParserRuleContext parent, int invokingState) {
291 			super(parent, invokingState);
292 		}
293 		@Override public int getRuleIndex() { return RULE_textReference; }
294 		@Override
295 		public void enterRule(ParseTreeListener listener) {
296 			if ( listener instanceof BridiListener ) ((BridiListener)listener).enterTextReference(this);
297 		}
298 		@Override
299 		public void exitRule(ParseTreeListener listener) {
300 			if ( listener instanceof BridiListener ) ((BridiListener)listener).exitTextReference(this);
301 		}
302 	}
303 
304 	public final TextReferenceContext textReference() throws RecognitionException {
305 		TextReferenceContext _localctx = new TextReferenceContext(_ctx, getState());
306 		enterRule(_localctx, 4, RULE_textReference);
307 		try {
308 			enterOuterAlt(_localctx, 1);
309 			{
310 			setState(30);
311 			match(REF);
312 			setState(31);
313 			match(TEXT);
314 			}
315 		}
316 		catch (RecognitionException re) {
317 			_localctx.exception = re;
318 			_errHandler.reportError(this, re);
319 			_errHandler.recover(this, re);
320 		}
321 		finally {
322 			exitRule();
323 		}
324 		return _localctx;
325 	}
326 
327 	@SuppressWarnings("CheckReturnValue")
328 	public static class ParagraphContext extends ParserRuleContext {
329 		public List<BridiContext> bridi() {
330 			return getRuleContexts(BridiContext.class);
331 		}
332 		public BridiContext bridi(int i) {
333 			return getRuleContext(BridiContext.class,i);
334 		}
335 		public List<TerminalNode> NEWLINE() { return getTokens(BridiParser.NEWLINE); }
336 		public TerminalNode NEWLINE(int i) {
337 			return getToken(BridiParser.NEWLINE, i);
338 		}
339 		public ParagraphContext(ParserRuleContext parent, int invokingState) {
340 			super(parent, invokingState);
341 		}
342 		@Override public int getRuleIndex() { return RULE_paragraph; }
343 		@Override
344 		public void enterRule(ParseTreeListener listener) {
345 			if ( listener instanceof BridiListener ) ((BridiListener)listener).enterParagraph(this);
346 		}
347 		@Override
348 		public void exitRule(ParseTreeListener listener) {
349 			if ( listener instanceof BridiListener ) ((BridiListener)listener).exitParagraph(this);
350 		}
351 	}
352 
353 	public final ParagraphContext paragraph() throws RecognitionException {
354 		ParagraphContext _localctx = new ParagraphContext(_ctx, getState());
355 		enterRule(_localctx, 6, RULE_paragraph);
356 		try {
357 			int _alt;
358 			enterOuterAlt(_localctx, 1);
359 			{
360 			setState(38);
361 			_errHandler.sync(this);
362 			_alt = getInterpreter().adaptivePredict(_input,3,_ctx);
363 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
364 				if ( _alt==1 ) {
365 					{
366 					{
367 					setState(33);
368 					bridi();
369 					setState(34);
370 					match(NEWLINE);
371 					}
372 					} 
373 				}
374 				setState(40);
375 				_errHandler.sync(this);
376 				_alt = getInterpreter().adaptivePredict(_input,3,_ctx);
377 			}
378 			setState(41);
379 			bridi();
380 			}
381 		}
382 		catch (RecognitionException re) {
383 			_localctx.exception = re;
384 			_errHandler.reportError(this, re);
385 			_errHandler.recover(this, re);
386 		}
387 		finally {
388 			exitRule();
389 		}
390 		return _localctx;
391 	}
392 
393 	public static final String _serializedATN =
394 		"\u0004\u0001\u0007,\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+
395 		"\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0001\u0000\u0004\u0000\n\b"+
396 		"\u0000\u000b\u0000\f\u0000\u000b\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
397 		"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
398 		"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u001b\b\u0001\u000b"+
399 		"\u0001\f\u0001\u001c\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0001"+
400 		"\u0003\u0001\u0003\u0005\u0003%\b\u0003\n\u0003\f\u0003(\t\u0003\u0001"+
401 		"\u0003\u0001\u0003\u0001\u0003\u0000\u0000\u0004\u0000\u0002\u0004\u0006"+
402 		"\u0000\u0001\u0002\u0000\u0001\u0002\u0007\u0007-\u0000\t\u0001\u0000"+
403 		"\u0000\u0000\u0002\u001a\u0001\u0000\u0000\u0000\u0004\u001e\u0001\u0000"+
404 		"\u0000\u0000\u0006&\u0001\u0000\u0000\u0000\b\n\u0007\u0000\u0000\u0000"+
405 		"\t\b\u0001\u0000\u0000\u0000\n\u000b\u0001\u0000\u0000\u0000\u000b\t\u0001"+
406 		"\u0000\u0000\u0000\u000b\f\u0001\u0000\u0000\u0000\f\u0001\u0001\u0000"+
407 		"\u0000\u0000\r\u001b\u0005\u0007\u0000\u0000\u000e\u000f\u0005\u0003\u0000"+
408 		"\u0000\u000f\u0010\u0003\u0000\u0000\u0000\u0010\u0011\u0005\u0004\u0000"+
409 		"\u0000\u0011\u001b\u0001\u0000\u0000\u0000\u0012\u0013\u0005\u0001\u0000"+
410 		"\u0000\u0013\u0014\u0003\u0002\u0001\u0000\u0014\u0015\u0005\u0002\u0000"+
411 		"\u0000\u0015\u001b\u0001\u0000\u0000\u0000\u0016\u0017\u0005\u0001\u0000"+
412 		"\u0000\u0017\u0018\u0003\u0004\u0002\u0000\u0018\u0019\u0005\u0002\u0000"+
413 		"\u0000\u0019\u001b\u0001\u0000\u0000\u0000\u001a\r\u0001\u0000\u0000\u0000"+
414 		"\u001a\u000e\u0001\u0000\u0000\u0000\u001a\u0012\u0001\u0000\u0000\u0000"+
415 		"\u001a\u0016\u0001\u0000\u0000\u0000\u001b\u001c\u0001\u0000\u0000\u0000"+
416 		"\u001c\u001a\u0001\u0000\u0000\u0000\u001c\u001d\u0001\u0000\u0000\u0000"+
417 		"\u001d\u0003\u0001\u0000\u0000\u0000\u001e\u001f\u0005\u0005\u0000\u0000"+
418 		"\u001f \u0005\u0007\u0000\u0000 \u0005\u0001\u0000\u0000\u0000!\"\u0003"+
419 		"\u0002\u0001\u0000\"#\u0005\u0006\u0000\u0000#%\u0001\u0000\u0000\u0000"+
420 		"$!\u0001\u0000\u0000\u0000%(\u0001\u0000\u0000\u0000&$\u0001\u0000\u0000"+
421 		"\u0000&\'\u0001\u0000\u0000\u0000\')\u0001\u0000\u0000\u0000(&\u0001\u0000"+
422 		"\u0000\u0000)*\u0003\u0002\u0001\u0000*\u0007\u0001\u0000\u0000\u0000"+
423 		"\u0004\u000b\u001a\u001c&";
424 	public static final ATN _ATN =
425 		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
426 	static {
427 		_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
428 		for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
429 			_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
430 		}
431 	}
432 }