Class TreeToNFAConverter


  • public class TreeToNFAConverter
    extends TreeParser
    Build an NFA from a tree representing an ANTLR grammar.
    • Field Detail

      • tokenNames

        public static final java.lang.String[] tokenNames
      • DOUBLE_ANGLE_STRING_LITERAL

        public static final int DOUBLE_ANGLE_STRING_LITERAL
        See Also:
        Constant Field Values
      • DOUBLE_QUOTE_STRING_LITERAL

        public static final int DOUBLE_QUOTE_STRING_LITERAL
        See Also:
        Constant Field Values
      • factory

        protected NFAFactory factory
        Factory used to create nodes and submachines
      • nfa

        protected NFA nfa
        Which NFA object are we filling in?
      • grammar

        protected Grammar grammar
        Which grammar are we converting an NFA for?
      • currentRuleName

        protected java.lang.String currentRuleName
      • outerAltNum

        protected int outerAltNum
      • blockLevel

        protected int blockLevel
      • inTest

        protected int inTest
      • FOLLOW_LEXER_GRAMMAR_in_grammar_68

        public static final BitSet FOLLOW_LEXER_GRAMMAR_in_grammar_68
      • FOLLOW_grammarSpec_in_grammar_70

        public static final BitSet FOLLOW_grammarSpec_in_grammar_70
      • FOLLOW_PARSER_GRAMMAR_in_grammar_80

        public static final BitSet FOLLOW_PARSER_GRAMMAR_in_grammar_80
      • FOLLOW_grammarSpec_in_grammar_82

        public static final BitSet FOLLOW_grammarSpec_in_grammar_82
      • FOLLOW_TREE_GRAMMAR_in_grammar_92

        public static final BitSet FOLLOW_TREE_GRAMMAR_in_grammar_92
      • FOLLOW_grammarSpec_in_grammar_94

        public static final BitSet FOLLOW_grammarSpec_in_grammar_94
      • FOLLOW_COMBINED_GRAMMAR_in_grammar_104

        public static final BitSet FOLLOW_COMBINED_GRAMMAR_in_grammar_104
      • FOLLOW_grammarSpec_in_grammar_106

        public static final BitSet FOLLOW_grammarSpec_in_grammar_106
      • FOLLOW_SCOPE_in_attrScope125

        public static final BitSet FOLLOW_SCOPE_in_attrScope125
      • FOLLOW_ID_in_attrScope127

        public static final BitSet FOLLOW_ID_in_attrScope127
      • FOLLOW_AMPERSAND_in_attrScope132

        public static final BitSet FOLLOW_AMPERSAND_in_attrScope132
      • FOLLOW_ACTION_in_attrScope141

        public static final BitSet FOLLOW_ACTION_in_attrScope141
      • FOLLOW_ID_in_grammarSpec154

        public static final BitSet FOLLOW_ID_in_grammarSpec154
      • FOLLOW_DOC_COMMENT_in_grammarSpec161

        public static final BitSet FOLLOW_DOC_COMMENT_in_grammarSpec161
      • FOLLOW_OPTIONS_in_grammarSpec170

        public static final BitSet FOLLOW_OPTIONS_in_grammarSpec170
      • FOLLOW_IMPORT_in_grammarSpec184

        public static final BitSet FOLLOW_IMPORT_in_grammarSpec184
      • FOLLOW_TOKENS_in_grammarSpec198

        public static final BitSet FOLLOW_TOKENS_in_grammarSpec198
      • FOLLOW_attrScope_in_grammarSpec210

        public static final BitSet FOLLOW_attrScope_in_grammarSpec210
      • FOLLOW_AMPERSAND_in_grammarSpec219

        public static final BitSet FOLLOW_AMPERSAND_in_grammarSpec219
      • FOLLOW_rules_in_grammarSpec231

        public static final BitSet FOLLOW_rules_in_grammarSpec231
      • FOLLOW_rule_in_rules243

        public static final BitSet FOLLOW_rule_in_rules243
      • FOLLOW_PREC_RULE_in_rules248

        public static final BitSet FOLLOW_PREC_RULE_in_rules248
      • FOLLOW_RULE_in_rule267

        public static final BitSet FOLLOW_RULE_in_rule267
      • FOLLOW_ID_in_rule271

        public static final BitSet FOLLOW_ID_in_rule271
      • FOLLOW_modifier_in_rule282

        public static final BitSet FOLLOW_modifier_in_rule282
      • FOLLOW_ARG_in_rule290

        public static final BitSet FOLLOW_ARG_in_rule290
      • FOLLOW_ARG_ACTION_in_rule293

        public static final BitSet FOLLOW_ARG_ACTION_in_rule293
      • FOLLOW_RET_in_rule302

        public static final BitSet FOLLOW_RET_in_rule302
      • FOLLOW_ARG_ACTION_in_rule305

        public static final BitSet FOLLOW_ARG_ACTION_in_rule305
      • FOLLOW_throwsSpec_in_rule314

        public static final BitSet FOLLOW_throwsSpec_in_rule314
      • FOLLOW_OPTIONS_in_rule324

        public static final BitSet FOLLOW_OPTIONS_in_rule324
      • FOLLOW_ruleScopeSpec_in_rule338

        public static final BitSet FOLLOW_ruleScopeSpec_in_rule338
      • FOLLOW_AMPERSAND_in_rule349

        public static final BitSet FOLLOW_AMPERSAND_in_rule349
      • FOLLOW_block_in_rule363

        public static final BitSet FOLLOW_block_in_rule363
      • FOLLOW_exceptionGroup_in_rule369

        public static final BitSet FOLLOW_exceptionGroup_in_rule369
      • FOLLOW_EOR_in_rule376

        public static final BitSet FOLLOW_EOR_in_rule376
      • FOLLOW_THROWS_in_throwsSpec423

        public static final BitSet FOLLOW_THROWS_in_throwsSpec423
      • FOLLOW_ID_in_throwsSpec425

        public static final BitSet FOLLOW_ID_in_throwsSpec425
      • FOLLOW_SCOPE_in_ruleScopeSpec440

        public static final BitSet FOLLOW_SCOPE_in_ruleScopeSpec440
      • FOLLOW_AMPERSAND_in_ruleScopeSpec445

        public static final BitSet FOLLOW_AMPERSAND_in_ruleScopeSpec445
      • FOLLOW_ACTION_in_ruleScopeSpec455

        public static final BitSet FOLLOW_ACTION_in_ruleScopeSpec455
      • FOLLOW_ID_in_ruleScopeSpec461

        public static final BitSet FOLLOW_ID_in_ruleScopeSpec461
      • FOLLOW_set_in_block492

        public static final BitSet FOLLOW_set_in_block492
      • FOLLOW_BLOCK_in_block502

        public static final BitSet FOLLOW_BLOCK_in_block502
      • FOLLOW_OPTIONS_in_block507

        public static final BitSet FOLLOW_OPTIONS_in_block507
      • FOLLOW_alternative_in_block523

        public static final BitSet FOLLOW_alternative_in_block523
      • FOLLOW_rewrite_in_block525

        public static final BitSet FOLLOW_rewrite_in_block525
      • FOLLOW_EOB_in_block548

        public static final BitSet FOLLOW_EOB_in_block548
      • FOLLOW_ALT_in_alternative577

        public static final BitSet FOLLOW_ALT_in_alternative577
      • FOLLOW_element_in_alternative582

        public static final BitSet FOLLOW_element_in_alternative582
      • FOLLOW_EOA_in_alternative589

        public static final BitSet FOLLOW_EOA_in_alternative589
      • FOLLOW_exceptionHandler_in_exceptionGroup608

        public static final BitSet FOLLOW_exceptionHandler_in_exceptionGroup608
      • FOLLOW_finallyClause_in_exceptionGroup614

        public static final BitSet FOLLOW_finallyClause_in_exceptionGroup614
      • FOLLOW_finallyClause_in_exceptionGroup621

        public static final BitSet FOLLOW_finallyClause_in_exceptionGroup621
      • FOLLOW_CATCH_in_exceptionHandler636

        public static final BitSet FOLLOW_CATCH_in_exceptionHandler636
      • FOLLOW_ARG_ACTION_in_exceptionHandler638

        public static final BitSet FOLLOW_ARG_ACTION_in_exceptionHandler638
      • FOLLOW_ACTION_in_exceptionHandler640

        public static final BitSet FOLLOW_ACTION_in_exceptionHandler640
      • FOLLOW_FINALLY_in_finallyClause656

        public static final BitSet FOLLOW_FINALLY_in_finallyClause656
      • FOLLOW_ACTION_in_finallyClause658

        public static final BitSet FOLLOW_ACTION_in_finallyClause658
      • FOLLOW_REWRITES_in_rewrite672

        public static final BitSet FOLLOW_REWRITES_in_rewrite672
      • FOLLOW_REWRITE_in_rewrite690

        public static final BitSet FOLLOW_REWRITE_in_rewrite690
      • FOLLOW_ROOT_in_element725

        public static final BitSet FOLLOW_ROOT_in_element725
      • FOLLOW_element_in_element729

        public static final BitSet FOLLOW_element_in_element729
      • FOLLOW_BANG_in_element740

        public static final BitSet FOLLOW_BANG_in_element740
      • FOLLOW_element_in_element744

        public static final BitSet FOLLOW_element_in_element744
      • FOLLOW_ASSIGN_in_element753

        public static final BitSet FOLLOW_ASSIGN_in_element753
      • FOLLOW_ID_in_element755

        public static final BitSet FOLLOW_ID_in_element755
      • FOLLOW_element_in_element759

        public static final BitSet FOLLOW_element_in_element759
      • FOLLOW_PLUS_ASSIGN_in_element768

        public static final BitSet FOLLOW_PLUS_ASSIGN_in_element768
      • FOLLOW_ID_in_element770

        public static final BitSet FOLLOW_ID_in_element770
      • FOLLOW_element_in_element774

        public static final BitSet FOLLOW_element_in_element774
      • FOLLOW_RANGE_in_element785

        public static final BitSet FOLLOW_RANGE_in_element785
      • FOLLOW_atom_in_element789

        public static final BitSet FOLLOW_atom_in_element789
      • FOLLOW_atom_in_element794

        public static final BitSet FOLLOW_atom_in_element794
      • FOLLOW_CHAR_RANGE_in_element808

        public static final BitSet FOLLOW_CHAR_RANGE_in_element808
      • FOLLOW_CHAR_LITERAL_in_element812

        public static final BitSet FOLLOW_CHAR_LITERAL_in_element812
      • FOLLOW_CHAR_LITERAL_in_element816

        public static final BitSet FOLLOW_CHAR_LITERAL_in_element816
      • FOLLOW_atom_or_notatom_in_element828

        public static final BitSet FOLLOW_atom_or_notatom_in_element828
      • FOLLOW_ebnf_in_element837

        public static final BitSet FOLLOW_ebnf_in_element837
      • FOLLOW_tree__in_element846

        public static final BitSet FOLLOW_tree__in_element846
      • FOLLOW_SYNPRED_in_element857

        public static final BitSet FOLLOW_SYNPRED_in_element857
      • FOLLOW_block_in_element859

        public static final BitSet FOLLOW_block_in_element859
      • FOLLOW_ACTION_in_element868

        public static final BitSet FOLLOW_ACTION_in_element868
      • FOLLOW_FORCED_ACTION_in_element877

        public static final BitSet FOLLOW_FORCED_ACTION_in_element877
      • FOLLOW_SEMPRED_in_element888

        public static final BitSet FOLLOW_SEMPRED_in_element888
      • FOLLOW_SYN_SEMPRED_in_element899

        public static final BitSet FOLLOW_SYN_SEMPRED_in_element899
      • FOLLOW_BACKTRACK_SEMPRED_in_element911

        public static final BitSet FOLLOW_BACKTRACK_SEMPRED_in_element911
      • FOLLOW_GATED_SEMPRED_in_element926

        public static final BitSet FOLLOW_GATED_SEMPRED_in_element926
      • FOLLOW_EPSILON_in_element935

        public static final BitSet FOLLOW_EPSILON_in_element935
      • FOLLOW_set_in_ebnf961

        public static final BitSet FOLLOW_set_in_ebnf961
      • FOLLOW_block_in_ebnf971

        public static final BitSet FOLLOW_block_in_ebnf971
      • FOLLOW_OPTIONAL_in_ebnf982

        public static final BitSet FOLLOW_OPTIONAL_in_ebnf982
      • FOLLOW_block_in_ebnf986

        public static final BitSet FOLLOW_block_in_ebnf986
      • FOLLOW_CLOSURE_in_ebnf999

        public static final BitSet FOLLOW_CLOSURE_in_ebnf999
      • FOLLOW_block_in_ebnf1003

        public static final BitSet FOLLOW_block_in_ebnf1003
      • FOLLOW_POSITIVE_CLOSURE_in_ebnf1016

        public static final BitSet FOLLOW_POSITIVE_CLOSURE_in_ebnf1016
      • FOLLOW_block_in_ebnf1020

        public static final BitSet FOLLOW_block_in_ebnf1020
      • FOLLOW_TREE_BEGIN_in_tree_1048

        public static final BitSet FOLLOW_TREE_BEGIN_in_tree_1048
      • FOLLOW_element_in_tree_1055

        public static final BitSet FOLLOW_element_in_tree_1055
      • FOLLOW_element_in_tree_1071

        public static final BitSet FOLLOW_element_in_tree_1071
      • FOLLOW_atom_in_atom_or_notatom1100

        public static final BitSet FOLLOW_atom_in_atom_or_notatom1100
      • FOLLOW_NOT_in_atom_or_notatom1112

        public static final BitSet FOLLOW_NOT_in_atom_or_notatom1112
      • FOLLOW_CHAR_LITERAL_in_atom_or_notatom1121

        public static final BitSet FOLLOW_CHAR_LITERAL_in_atom_or_notatom1121
      • FOLLOW_ast_suffix_in_atom_or_notatom1126

        public static final BitSet FOLLOW_ast_suffix_in_atom_or_notatom1126
      • FOLLOW_TOKEN_REF_in_atom_or_notatom1143

        public static final BitSet FOLLOW_TOKEN_REF_in_atom_or_notatom1143
      • FOLLOW_ast_suffix_in_atom_or_notatom1148

        public static final BitSet FOLLOW_ast_suffix_in_atom_or_notatom1148
      • FOLLOW_set_in_atom_or_notatom1163

        public static final BitSet FOLLOW_set_in_atom_or_notatom1163
      • FOLLOW_RULE_REF_in_atom1205

        public static final BitSet FOLLOW_RULE_REF_in_atom1205
      • FOLLOW_ARG_ACTION_in_atom1210

        public static final BitSet FOLLOW_ARG_ACTION_in_atom1210
      • FOLLOW_ast_suffix_in_atom1217

        public static final BitSet FOLLOW_ast_suffix_in_atom1217
      • FOLLOW_TOKEN_REF_in_atom1235

        public static final BitSet FOLLOW_TOKEN_REF_in_atom1235
      • FOLLOW_ARG_ACTION_in_atom1241

        public static final BitSet FOLLOW_ARG_ACTION_in_atom1241
      • FOLLOW_ast_suffix_in_atom1248

        public static final BitSet FOLLOW_ast_suffix_in_atom1248
      • FOLLOW_CHAR_LITERAL_in_atom1266

        public static final BitSet FOLLOW_CHAR_LITERAL_in_atom1266
      • FOLLOW_ast_suffix_in_atom1272

        public static final BitSet FOLLOW_ast_suffix_in_atom1272
      • FOLLOW_STRING_LITERAL_in_atom1290

        public static final BitSet FOLLOW_STRING_LITERAL_in_atom1290
      • FOLLOW_ast_suffix_in_atom1296

        public static final BitSet FOLLOW_ast_suffix_in_atom1296
      • FOLLOW_WILDCARD_in_atom1314

        public static final BitSet FOLLOW_WILDCARD_in_atom1314
      • FOLLOW_ast_suffix_in_atom1319

        public static final BitSet FOLLOW_ast_suffix_in_atom1319
      • FOLLOW_DOT_in_atom1336

        public static final BitSet FOLLOW_DOT_in_atom1336
      • FOLLOW_ID_in_atom1340

        public static final BitSet FOLLOW_ID_in_atom1340
      • FOLLOW_atom_in_atom1344

        public static final BitSet FOLLOW_atom_in_atom1344
      • FOLLOW_BLOCK_in_set1390

        public static final BitSet FOLLOW_BLOCK_in_set1390
      • FOLLOW_ALT_in_set1399

        public static final BitSet FOLLOW_ALT_in_set1399
      • FOLLOW_BACKTRACK_SEMPRED_in_set1404

        public static final BitSet FOLLOW_BACKTRACK_SEMPRED_in_set1404
      • FOLLOW_setElement_in_set1413

        public static final BitSet FOLLOW_setElement_in_set1413
      • FOLLOW_EOA_in_set1416

        public static final BitSet FOLLOW_EOA_in_set1416
      • FOLLOW_EOB_in_set1426

        public static final BitSet FOLLOW_EOB_in_set1426
      • FOLLOW_RULE_in_setRule1460

        public static final BitSet FOLLOW_RULE_in_setRule1460
      • FOLLOW_ID_in_setRule1464

        public static final BitSet FOLLOW_ID_in_setRule1464
      • FOLLOW_modifier_in_setRule1467

        public static final BitSet FOLLOW_modifier_in_setRule1467
      • FOLLOW_ARG_in_setRule1471

        public static final BitSet FOLLOW_ARG_in_setRule1471
      • FOLLOW_RET_in_setRule1473

        public static final BitSet FOLLOW_RET_in_setRule1473
      • FOLLOW_OPTIONS_in_setRule1478

        public static final BitSet FOLLOW_OPTIONS_in_setRule1478
      • FOLLOW_ruleScopeSpec_in_setRule1489

        public static final BitSet FOLLOW_ruleScopeSpec_in_setRule1489
      • FOLLOW_AMPERSAND_in_setRule1500

        public static final BitSet FOLLOW_AMPERSAND_in_setRule1500
      • FOLLOW_BLOCK_in_setRule1514

        public static final BitSet FOLLOW_BLOCK_in_setRule1514
      • FOLLOW_OPTIONS_in_setRule1519

        public static final BitSet FOLLOW_OPTIONS_in_setRule1519
      • FOLLOW_ALT_in_setRule1537

        public static final BitSet FOLLOW_ALT_in_setRule1537
      • FOLLOW_BACKTRACK_SEMPRED_in_setRule1540

        public static final BitSet FOLLOW_BACKTRACK_SEMPRED_in_setRule1540
      • FOLLOW_setElement_in_setRule1544

        public static final BitSet FOLLOW_setElement_in_setRule1544
      • FOLLOW_EOA_in_setRule1547

        public static final BitSet FOLLOW_EOA_in_setRule1547
      • FOLLOW_EOB_in_setRule1559

        public static final BitSet FOLLOW_EOB_in_setRule1559
      • FOLLOW_exceptionGroup_in_setRule1571

        public static final BitSet FOLLOW_exceptionGroup_in_setRule1571
      • FOLLOW_EOR_in_setRule1578

        public static final BitSet FOLLOW_EOR_in_setRule1578
      • FOLLOW_CHAR_LITERAL_in_setElement1607

        public static final BitSet FOLLOW_CHAR_LITERAL_in_setElement1607
      • FOLLOW_TOKEN_REF_in_setElement1618

        public static final BitSet FOLLOW_TOKEN_REF_in_setElement1618
      • FOLLOW_STRING_LITERAL_in_setElement1630

        public static final BitSet FOLLOW_STRING_LITERAL_in_setElement1630
      • FOLLOW_CHAR_RANGE_in_setElement1640

        public static final BitSet FOLLOW_CHAR_RANGE_in_setElement1640
      • FOLLOW_CHAR_LITERAL_in_setElement1644

        public static final BitSet FOLLOW_CHAR_LITERAL_in_setElement1644
      • FOLLOW_CHAR_LITERAL_in_setElement1648

        public static final BitSet FOLLOW_CHAR_LITERAL_in_setElement1648
      • FOLLOW_set_in_setElement1661

        public static final BitSet FOLLOW_set_in_setElement1661
      • FOLLOW_NOT_in_setElement1673

        public static final BitSet FOLLOW_NOT_in_setElement1673
      • FOLLOW_setElement_in_setElement1680

        public static final BitSet FOLLOW_setElement_in_setElement1680
      • FOLLOW_BLOCK_in_testBlockAsSet1725

        public static final BitSet FOLLOW_BLOCK_in_testBlockAsSet1725
      • FOLLOW_ALT_in_testBlockAsSet1733

        public static final BitSet FOLLOW_ALT_in_testBlockAsSet1733
      • FOLLOW_BACKTRACK_SEMPRED_in_testBlockAsSet1736

        public static final BitSet FOLLOW_BACKTRACK_SEMPRED_in_testBlockAsSet1736
      • FOLLOW_testSetElement_in_testBlockAsSet1740

        public static final BitSet FOLLOW_testSetElement_in_testBlockAsSet1740
      • FOLLOW_EOA_in_testBlockAsSet1744

        public static final BitSet FOLLOW_EOA_in_testBlockAsSet1744
      • FOLLOW_EOB_in_testBlockAsSet1756

        public static final BitSet FOLLOW_EOB_in_testBlockAsSet1756
      • FOLLOW_RULE_in_testSetRule1791

        public static final BitSet FOLLOW_RULE_in_testSetRule1791
      • FOLLOW_ID_in_testSetRule1795

        public static final BitSet FOLLOW_ID_in_testSetRule1795
      • FOLLOW_modifier_in_testSetRule1798

        public static final BitSet FOLLOW_modifier_in_testSetRule1798
      • FOLLOW_ARG_in_testSetRule1802

        public static final BitSet FOLLOW_ARG_in_testSetRule1802
      • FOLLOW_RET_in_testSetRule1804

        public static final BitSet FOLLOW_RET_in_testSetRule1804
      • FOLLOW_OPTIONS_in_testSetRule1809

        public static final BitSet FOLLOW_OPTIONS_in_testSetRule1809
      • FOLLOW_ruleScopeSpec_in_testSetRule1820

        public static final BitSet FOLLOW_ruleScopeSpec_in_testSetRule1820
      • FOLLOW_AMPERSAND_in_testSetRule1831

        public static final BitSet FOLLOW_AMPERSAND_in_testSetRule1831
      • FOLLOW_BLOCK_in_testSetRule1845

        public static final BitSet FOLLOW_BLOCK_in_testSetRule1845
      • FOLLOW_ALT_in_testSetRule1854

        public static final BitSet FOLLOW_ALT_in_testSetRule1854
      • FOLLOW_BACKTRACK_SEMPRED_in_testSetRule1857

        public static final BitSet FOLLOW_BACKTRACK_SEMPRED_in_testSetRule1857
      • FOLLOW_testSetElement_in_testSetRule1861

        public static final BitSet FOLLOW_testSetElement_in_testSetRule1861
      • FOLLOW_EOA_in_testSetRule1865

        public static final BitSet FOLLOW_EOA_in_testSetRule1865
      • FOLLOW_EOB_in_testSetRule1879

        public static final BitSet FOLLOW_EOB_in_testSetRule1879
      • FOLLOW_exceptionGroup_in_testSetRule1890

        public static final BitSet FOLLOW_exceptionGroup_in_testSetRule1890
      • FOLLOW_EOR_in_testSetRule1897

        public static final BitSet FOLLOW_EOR_in_testSetRule1897
      • FOLLOW_CHAR_LITERAL_in_testSetElement1929

        public static final BitSet FOLLOW_CHAR_LITERAL_in_testSetElement1929
      • FOLLOW_TOKEN_REF_in_testSetElement1938

        public static final BitSet FOLLOW_TOKEN_REF_in_testSetElement1938
      • FOLLOW_STRING_LITERAL_in_testSetElement1957

        public static final BitSet FOLLOW_STRING_LITERAL_in_testSetElement1957
      • FOLLOW_CHAR_RANGE_in_testSetElement1963

        public static final BitSet FOLLOW_CHAR_RANGE_in_testSetElement1963
      • FOLLOW_CHAR_LITERAL_in_testSetElement1967

        public static final BitSet FOLLOW_CHAR_LITERAL_in_testSetElement1967
      • FOLLOW_CHAR_LITERAL_in_testSetElement1971

        public static final BitSet FOLLOW_CHAR_LITERAL_in_testSetElement1971
      • FOLLOW_testBlockAsSet_in_testSetElement1983

        public static final BitSet FOLLOW_testBlockAsSet_in_testSetElement1983
      • FOLLOW_NOT_in_testSetElement1996

        public static final BitSet FOLLOW_NOT_in_testSetElement1996
      • FOLLOW_testSetElement_in_testSetElement2000

        public static final BitSet FOLLOW_testSetElement_in_testSetElement2000