summaryrefslogtreecommitdiff
path: root/Homework/cs5300/project-three/cfgparser/GrammarParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'Homework/cs5300/project-three/cfgparser/GrammarParser.java')
-rw-r--r--Homework/cs5300/project-three/cfgparser/GrammarParser.java503
1 files changed, 503 insertions, 0 deletions
diff --git a/Homework/cs5300/project-three/cfgparser/GrammarParser.java b/Homework/cs5300/project-three/cfgparser/GrammarParser.java
new file mode 100644
index 0000000..20c523c
--- /dev/null
+++ b/Homework/cs5300/project-three/cfgparser/GrammarParser.java
@@ -0,0 +1,503 @@
+// Generated from Grammar.g4 by ANTLR 4.9.1
+package cfgparser;
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.misc.*;
+import org.antlr.v4.runtime.tree.*;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
+
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
+public class GrammarParser extends Parser {
+ static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ T__0=1, T__1=2, T__2=3, GRAMMAR=4, IDENT=5, WS=6, COMMENT=7;
+ public static final int
+ RULE_goal = 0, RULE_name = 1, RULE_rule_list = 2, RULE_lhs = 3, RULE_rhs = 4,
+ RULE_or_list = 5, RULE_symbol_list = 6, RULE_symbol = 7;
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "goal", "name", "rule_list", "lhs", "rhs", "or_list", "symbol_list",
+ "symbol"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
+
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ null, "';'", "':'", "'|'", "'grammar'"
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, null, null, null, "GRAMMAR", "IDENT", "WS", "COMMENT"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
+ public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
+
+ /**
+ * @deprecated Use {@link #VOCABULARY} instead.
+ */
+ @Deprecated
+ public static final String[] tokenNames;
+ static {
+ tokenNames = new String[_SYMBOLIC_NAMES.length];
+ for (int i = 0; i < tokenNames.length; i++) {
+ tokenNames[i] = VOCABULARY.getLiteralName(i);
+ if (tokenNames[i] == null) {
+ tokenNames[i] = VOCABULARY.getSymbolicName(i);
+ }
+
+ if (tokenNames[i] == null) {
+ tokenNames[i] = "<INVALID>";
+ }
+ }
+ }
+
+ @Override
+ @Deprecated
+ public String[] getTokenNames() {
+ return tokenNames;
+ }
+
+ @Override
+
+ public Vocabulary getVocabulary() {
+ return VOCABULARY;
+ }
+
+ @Override
+ public String getGrammarFileName() { return "Grammar.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public GrammarParser(TokenStream input) {
+ super(input);
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+
+ public static class GoalContext extends ParserRuleContext {
+ public TerminalNode GRAMMAR() { return getToken(GrammarParser.GRAMMAR, 0); }
+ public NameContext name() {
+ return getRuleContext(NameContext.class,0);
+ }
+ public Rule_listContext rule_list() {
+ return getRuleContext(Rule_listContext.class,0);
+ }
+ public GoalContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_goal; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterGoal(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitGoal(this);
+ }
+ }
+
+ public final GoalContext goal() throws RecognitionException {
+ GoalContext _localctx = new GoalContext(_ctx, getState());
+ enterRule(_localctx, 0, RULE_goal);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(16);
+ match(GRAMMAR);
+ setState(17);
+ name();
+ setState(18);
+ match(T__0);
+ setState(19);
+ rule_list();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class NameContext extends ParserRuleContext {
+ public TerminalNode IDENT() { return getToken(GrammarParser.IDENT, 0); }
+ public NameContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_name; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterName(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitName(this);
+ }
+ }
+
+ public final NameContext name() throws RecognitionException {
+ NameContext _localctx = new NameContext(_ctx, getState());
+ enterRule(_localctx, 2, RULE_name);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(21);
+ match(IDENT);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class Rule_listContext extends ParserRuleContext {
+ public LhsContext lhs() {
+ return getRuleContext(LhsContext.class,0);
+ }
+ public RhsContext rhs() {
+ return getRuleContext(RhsContext.class,0);
+ }
+ public Or_listContext or_list() {
+ return getRuleContext(Or_listContext.class,0);
+ }
+ public Rule_listContext rule_list() {
+ return getRuleContext(Rule_listContext.class,0);
+ }
+ public Rule_listContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_rule_list; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterRule_list(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitRule_list(this);
+ }
+ }
+
+ public final Rule_listContext rule_list() throws RecognitionException {
+ Rule_listContext _localctx = new Rule_listContext(_ctx, getState());
+ enterRule(_localctx, 4, RULE_rule_list);
+ try {
+ setState(31);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case IDENT:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(23);
+ lhs();
+ setState(24);
+ match(T__1);
+ setState(25);
+ rhs();
+ setState(26);
+ or_list();
+ setState(27);
+ match(T__0);
+ setState(28);
+ rule_list();
+ }
+ break;
+ case EOF:
+ enterOuterAlt(_localctx, 2);
+ {
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class LhsContext extends ParserRuleContext {
+ public TerminalNode IDENT() { return getToken(GrammarParser.IDENT, 0); }
+ public LhsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_lhs; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterLhs(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitLhs(this);
+ }
+ }
+
+ public final LhsContext lhs() throws RecognitionException {
+ LhsContext _localctx = new LhsContext(_ctx, getState());
+ enterRule(_localctx, 6, RULE_lhs);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(33);
+ match(IDENT);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class RhsContext extends ParserRuleContext {
+ public Symbol_listContext symbol_list() {
+ return getRuleContext(Symbol_listContext.class,0);
+ }
+ public RhsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_rhs; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterRhs(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitRhs(this);
+ }
+ }
+
+ public final RhsContext rhs() throws RecognitionException {
+ RhsContext _localctx = new RhsContext(_ctx, getState());
+ enterRule(_localctx, 8, RULE_rhs);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(35);
+ symbol_list();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class Or_listContext extends ParserRuleContext {
+ public RhsContext rhs() {
+ return getRuleContext(RhsContext.class,0);
+ }
+ public Or_listContext or_list() {
+ return getRuleContext(Or_listContext.class,0);
+ }
+ public Or_listContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_or_list; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterOr_list(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitOr_list(this);
+ }
+ }
+
+ public final Or_listContext or_list() throws RecognitionException {
+ Or_listContext _localctx = new Or_listContext(_ctx, getState());
+ enterRule(_localctx, 10, RULE_or_list);
+ try {
+ setState(42);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case T__2:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(37);
+ match(T__2);
+ setState(38);
+ rhs();
+ setState(39);
+ or_list();
+ }
+ break;
+ case T__0:
+ enterOuterAlt(_localctx, 2);
+ {
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class Symbol_listContext extends ParserRuleContext {
+ public SymbolContext symbol() {
+ return getRuleContext(SymbolContext.class,0);
+ }
+ public Symbol_listContext symbol_list() {
+ return getRuleContext(Symbol_listContext.class,0);
+ }
+ public Symbol_listContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_symbol_list; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterSymbol_list(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitSymbol_list(this);
+ }
+ }
+
+ public final Symbol_listContext symbol_list() throws RecognitionException {
+ Symbol_listContext _localctx = new Symbol_listContext(_ctx, getState());
+ enterRule(_localctx, 12, RULE_symbol_list);
+ try {
+ setState(48);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case IDENT:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(44);
+ symbol();
+ setState(45);
+ symbol_list();
+ }
+ break;
+ case T__0:
+ case T__2:
+ enterOuterAlt(_localctx, 2);
+ {
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class SymbolContext extends ParserRuleContext {
+ public TerminalNode IDENT() { return getToken(GrammarParser.IDENT, 0); }
+ public SymbolContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_symbol; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).enterSymbol(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof GrammarListener ) ((GrammarListener)listener).exitSymbol(this);
+ }
+ }
+
+ public final SymbolContext symbol() throws RecognitionException {
+ SymbolContext _localctx = new SymbolContext(_ctx, getState());
+ enterRule(_localctx, 14, RULE_symbol);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(50);
+ match(IDENT);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static final String _serializedATN =
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\t\67\4\2\t\2\4\3"+
+ "\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\3\2\3\2\3\2\3\2\3"+
+ "\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\5\4\"\n\4\3\5\3\5\3\6\3\6\3"+
+ "\7\3\7\3\7\3\7\3\7\5\7-\n\7\3\b\3\b\3\b\3\b\5\b\63\n\b\3\t\3\t\3\t\2\2"+
+ "\n\2\4\6\b\n\f\16\20\2\2\2\61\2\22\3\2\2\2\4\27\3\2\2\2\6!\3\2\2\2\b#"+
+ "\3\2\2\2\n%\3\2\2\2\f,\3\2\2\2\16\62\3\2\2\2\20\64\3\2\2\2\22\23\7\6\2"+
+ "\2\23\24\5\4\3\2\24\25\7\3\2\2\25\26\5\6\4\2\26\3\3\2\2\2\27\30\7\7\2"+
+ "\2\30\5\3\2\2\2\31\32\5\b\5\2\32\33\7\4\2\2\33\34\5\n\6\2\34\35\5\f\7"+
+ "\2\35\36\7\3\2\2\36\37\5\6\4\2\37\"\3\2\2\2 \"\3\2\2\2!\31\3\2\2\2! \3"+
+ "\2\2\2\"\7\3\2\2\2#$\7\7\2\2$\t\3\2\2\2%&\5\16\b\2&\13\3\2\2\2\'(\7\5"+
+ "\2\2()\5\n\6\2)*\5\f\7\2*-\3\2\2\2+-\3\2\2\2,\'\3\2\2\2,+\3\2\2\2-\r\3"+
+ "\2\2\2./\5\20\t\2/\60\5\16\b\2\60\63\3\2\2\2\61\63\3\2\2\2\62.\3\2\2\2"+
+ "\62\61\3\2\2\2\63\17\3\2\2\2\64\65\7\7\2\2\65\21\3\2\2\2\5!,\62";
+ public static final ATN _ATN =
+ new ATNDeserializer().deserialize(_serializedATN.toCharArray());
+ static {
+ _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
+ for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
+ _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
+ }
+ }
+} \ No newline at end of file